summaryrefslogtreecommitdiff
path: root/libctf/ChangeLog
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2021-03-18 12:37:52 +0000
committerNick Alcock <nick.alcock@oracle.com>2021-03-18 12:40:41 +0000
commitd7b1416ef2c46ee9b8bfe4e5ceb87b371d49504c (patch)
tree5ffb5632494d12c100d5c2891d00fa729149b3cd /libctf/ChangeLog
parent08c428aff4a793b63c7dd2229ae172879623e3a2 (diff)
downloadbinutils-gdb-d7b1416ef2c46ee9b8bfe4e5ceb87b371d49504c.tar.gz
libctf: types: unify code dealing with small-vs-large struct members
This completes the job of unifying what was once three separate code paths full of duplication for every function dealing with querying the properties of struct and union members. The dynamic code path was already removed: this change removes the distinction between small and large members, by adding a helper that copies out members from the vlen, expanding small members into large ones as it does so. This makes it possible to have *more* representations of things like structure members without needing to change the querying functions at all. It also lets us check for buffer overruns more effectively, verifying that we don't accidentally overrun the end of the vlen in either the dynamic or static type case. libctf/ChangeLog 2021-03-18 Nick Alcock <nick.alcock@oracle.com> * ctf-impl.h (ctf_next_t) <ctn_tp>: New. <u.ctn_mp>: Remove. <u.ctn_lmp>: Remove. <u.ctn_vlen>: New. * ctf-types.c (ctf_struct_member): New. (ctf_member_next): Use it, dropping separate large/small code paths. (ctf_type_align): Likewise. (ctf_member_info): Likewise. (ctf_type_rvisit): Likewise.
Diffstat (limited to 'libctf/ChangeLog')
-rw-r--r--libctf/ChangeLog12
1 files changed, 12 insertions, 0 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 7874a776305..85eb09dd9d0 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,17 @@
2021-03-18 Nick Alcock <nick.alcock@oracle.com>
+ * ctf-impl.h (ctf_next_t) <ctn_tp>: New.
+ <u.ctn_mp>: Remove.
+ <u.ctn_lmp>: Remove.
+ <u.ctn_vlen>: New.
+ * ctf-types.c (ctf_struct_member): New.
+ (ctf_member_next): Use it, dropping separate large/small code paths.
+ (ctf_type_align): Likewise.
+ (ctf_member_info): Likewise.
+ (ctf_type_rvisit): Likewise.
+
+2021-03-18 Nick Alcock <nick.alcock@oracle.com>
+
* ctf-impl.h (ctf_dtdef_t) <dtu_members>: Remove.
<dtd_u>: Likewise.
(ctf_dmdef_t): Remove.