From 2527e1494b783a60d8a874f28835700046f55dda Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Sat, 14 May 2011 01:35:44 -0400 Subject: [PATCH] Create copy of integer declaration before applying base-16 for pointers Signed-off-by: Mathieu Desnoyers --- .../ctf/metadata/ctf-visitor-generate-io-struct.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c index 7688f5f1..507233c9 100644 --- a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c +++ b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c @@ -317,8 +317,17 @@ struct declaration *ctf_type_declarator_visit(FILE *fd, int depth, struct declaration_integer *integer_declaration = container_of(nested_declaration, struct declaration_integer, p); /* For base to 16 for pointers (expected pretty-print) */ - if (!integer_declaration->base) - integer_declaration->base = 16; + if (!integer_declaration->base) { + /* + * We need to do a copy of the + * integer declaration to modify it. There could be other references to + * it. + */ + integer_declaration = integer_declaration_new(integer_declaration->len, + integer_declaration->byte_order, integer_declaration->signedness, + integer_declaration->p.alignment, 16); + nested_declaration = &integer_declaration->p; + } } } else { nested_declaration = ctf_type_specifier_list_visit(fd, depth, -- 2.34.1