This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: mjw/dwarf_output branch


On Wed, 2011-01-26 at 22:14 +0100, Mark Wielaard wrote:
> So what is missing is "chaining" the reference attribute local hashes
> (if we don't chain them, we end up with very "flat" hashes where lots
> dies get the same hash just because they have a reference attribute).
> 
> Ideally this would just be ref_attr.reference()->local_hash (), but
> since we calculate the hash of the attributes_type just before it is
> inserted into the collector this doesn't work (the way this aborts is
> somewhat obscure though - it ends up in in the dwarf_data::variant
> constructor that throws a "can't happen!"). I am a little confused atm
> about how the instantiation of the attributes_type gets triggered
> precisely. It is probably necessary to do this in two phases by lifting
> parts of pending_entry::final () method out in a second initialization
> step.

So here I am really a bit stuck. Although I figured out (see previous
email) how the dwarf_output::attributes_type gets constructed from the
dwarf_data::attributes_type, I don't fully understand how to "recapture"
the original references that the copier so diligently kept track of.
What/where/how would be the best point to extract this info, so that we
have it when we want to calculate a local hash for a reference attribute
(which is the local hash of the die pointed to by the attribute)?

Thanks,

Mark


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]