You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a check in TDViaParser::FinalizeVILoad() which asserts that during the preflight phase of parsing a VI/clump, no new allocations have been made in the type manager.
This is commented out because it's not currently true.
This doesn't usually cause any problems; the allocations are either used or deleted and reallocated during the allocation phrase, but it's extra work we don't need to be doing, and these extra allocations did expose a bug in CopyProcName() (see DE14013 and PR #344) because the reallocations didn't have the same alignment (when incorrectly expecting alignment to match beyond 8-byte boundaries).
This issue is to track preventing these allocation during preflight. After fixing DE14013, they aren't known to be manifeting any incorrect behavior, but it's conceptually incorrect as well as a minor performance issue.
Some of the allocations known to occur in preflight:
ClumpParseState::ResolveActualArgument():
~line 530, a DefaultValueType is allocated for unwired (*) arguments.
~line 590, calling actualArgument->Begin(...) will allocate arrays
ClumpParseState::EmitInstruction():
~line 1080, DVTs allocated for extra formal arguments not specified.
The text was updated successfully, but these errors were encountered:
There is a check in TDViaParser::FinalizeVILoad() which asserts that during the preflight phase of parsing a VI/clump, no new allocations have been made in the type manager.
This is commented out because it's not currently true.
This doesn't usually cause any problems; the allocations are either used or deleted and reallocated during the allocation phrase, but it's extra work we don't need to be doing, and these extra allocations did expose a bug in CopyProcName() (see DE14013 and PR #344) because the reallocations didn't have the same alignment (when incorrectly expecting alignment to match beyond 8-byte boundaries).
This issue is to track preventing these allocation during preflight. After fixing DE14013, they aren't known to be manifeting any incorrect behavior, but it's conceptually incorrect as well as a minor performance issue.
Some of the allocations known to occur in preflight:
ClumpParseState::ResolveActualArgument():
~line 530, a DefaultValueType is allocated for unwired (*) arguments.
~line 590, calling actualArgument->Begin(...) will allocate arrays
ClumpParseState::EmitInstruction():
~line 1080, DVTs allocated for extra formal arguments not specified.
The text was updated successfully, but these errors were encountered: