Repository navigation
plan: UB-289 addendum, the address reuse follows the allocator cache fill - #2286
Merged
Merged
Conversation
…fill A gdb trace of the C++ heal on ap203/gehaeuse.stp body 0 shows the freed vertex-props address reuse going opposite ways at the top-level Fix_CoinVertices and in the Fix_DegenFaces catch-up, with no allocation in between: glibc's per-thread cache decides it. No deterministic rule matches C++ there; the port's default stays. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
bherbruck
enabled auto-merge
November 1, 2026 23:05
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs only: one addendum to UB-289 (#2258).
A gdb trace of the C++ heal on STEP Tools
ap203/gehaeuse.stpbody 0 (heal stopped afterFix_DegenFaces) shows, per merge, the freed vertex props and the new survivor props allocation:Fix_CoinVertices: the new props take the deleted vertex's freed address, so the loop's rewrite points later pairs at a dead address, and they don't follow. This matches the port's result.Fix_CoinVerticesinsideFix_DegenFaces: the new props take the survivor's own freed address, so later pairs follow. That accounts for the 2-vertex gap.So no deterministic rule reproduces C++ here short of emulating the allocator. The port keeps its deterministic default, and no opt-in is planned. The addendum gives counts and the mechanism only, with no addresses or coordinates.
🤖 Generated with Claude Code