-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gocore: overhaul roots, expand testing
This change overhauls how roots work to prepare for supporting composite values (roots "de-structured" and broken up into pieces, despite representing a single type). It also expands testing a little bit to prevent backsliding from this point. Roots now do not have an address identity at all, and callers do not rely on that fact anymore. They have a forged identity which is useful for some calculations, but otherwise can only be identified by a *Root. Pointers may now be found in composite roots, which is nice, so all destructured values work correctly for the sake of iterating over all pointers. Finally, this fixes a small, old bug in typeObject where the type pointer would be interrogated before we filtered out whether a interface was nil or not. Because we filter dead pointers by making them appear nil, this means we could end up looking at a bogus, clobbered type pointer. (This may be a bug in the compiler's DWARF generation, the type shouldn't be clobbered.) Change-Id: I09217b2070dc6f4bf4b1dbd28d52f570ba61ca4a Reviewed-on: https://go-review.googlesource.com/c/debug/+/635857 Auto-Submit: Michael Knyszek <[email protected]> Reviewed-by: Nicolas Hillegeer <[email protected]> Reviewed-by: Michael Pratt <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]>
- Loading branch information
Showing
12 changed files
with
480 additions
and
219 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.