diff options
author | markj <markj@FreeBSD.org> | 2015-03-11 00:01:39 +0000 |
---|---|---|
committer | markj <markj@FreeBSD.org> | 2015-03-11 00:01:39 +0000 |
commit | 1c0a61aa611e9785df22a94fbea4a52ba293d962 (patch) | |
tree | 0c0e85ef123c492fa524f9f386b0110c83929569 /share/misc/committers-src.dot | |
parent | a76e348a4b790b714d72dd53286a81bbef9b5f28 (diff) | |
download | FreeBSD-src-1c0a61aa611e9785df22a94fbea4a52ba293d962.zip FreeBSD-src-1c0a61aa611e9785df22a94fbea4a52ba293d962.tar.gz |
When copying a type from a source CTF container to a destination container,
ctf_add_type() first performs a by-name lookup of the type in the
destination container. If this lookup returns a forward declaration for an
enum, struct, or union, reset dst_type back to CTF_ERR, indicating that the
source type is not in fact present in the destination container. This
ensures that ctf_add_type() will also search the destination container's
dynamic type list for the source type.
Without this change, a pair of mutually recursive struct definitions could
cause infinite recursion in ctf_add_type() if the destination container
only contained forward declarations for the struct types: ctf_add_type()
recursively calls itself on each struct member's type, and the forward
declarations meant that the dynamic type list search would be skipped.
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'share/misc/committers-src.dot')
0 files changed, 0 insertions, 0 deletions