mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
libctf: don't lose track of all valid types upon serialization
One pattern which is rarely done in libctf but which is meant to work is this: ctf_create(); ctf_add_*(); // add stuff ctf_type_*() // look stuff up ctf_write_*(); ctf_add_*(); // should still work ctf_type_*() // so should this ctf_write_*(); // and this i.e., writing out a dict should not break it and you should be able to do everything you could do with it before, including writing it out again. Unfortunately this has been broken for a while because the field which indicates the maximum valid type ID was not preserved across serialization: so type additions after serialization would overwrite types (obviously disastrous) and type lookups would just fail. Fix trivial. libctf/ChangeLog 2021-03-18 Nick Alcock <nick.alcock@oracle.com> * ctf-serialize.c (ctf_serialize): Preserve ctf_typemax across serialization.
This commit is contained in:
@ -1113,6 +1113,7 @@ ctf_serialize (ctf_dict_t *fp)
|
||||
nfp->ctf_dynsyms = fp->ctf_dynsyms;
|
||||
nfp->ctf_ptrtab = fp->ctf_ptrtab;
|
||||
nfp->ctf_pptrtab = fp->ctf_pptrtab;
|
||||
nfp->ctf_typemax = fp->ctf_typemax;
|
||||
nfp->ctf_dynsymidx = fp->ctf_dynsymidx;
|
||||
nfp->ctf_dynsymmax = fp->ctf_dynsymmax;
|
||||
nfp->ctf_ptrtab_len = fp->ctf_ptrtab_len;
|
||||
|
Reference in New Issue
Block a user