libctf: do not deduplicate strings in the header

It is unreasonable to expect users to ctf_import the parent before being
able to understand the header -- doubly so because the only string in the
header which is likely to be deduplicable is the parent name, which is the
same in every child, yet without the parent name being *available* in the
child's strtab you cannot call ctf_parent_name to figure out which parent
to import!

libctf/
	* ctf-serialize.c (ctf_preserialize): Prevent deduplication of header string
        fields.
	* ctf-open.c (ctf_set_base): Note this.
	* ctf-string.c (ctf_str_free_atom): Likewise.
This commit is contained in:
Nick Alcock
2024-07-15 22:08:10 +01:00
parent 3bec4f1f3c
commit ba66e0cc32
3 changed files with 11 additions and 4 deletions

View File

@@ -202,7 +202,9 @@ ctf_str_free_atom (void *a)
pulled in.)
Note that the *final strtab* may be entirely empty, if all its strings are
shared with the parent: the atoms table is a superset. */
shared with the parent: the atoms table is a superset. (But this will never
happen in practice, because some header fields are explicitly never
deduplicated.) */
int
ctf_str_create_atoms (ctf_dict_t *fp)
{