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
class: don't leak the default initialiser ops if they're forbidden
Previously if forbid_outofblock_ops() here threw an error the ops
from defop would leak, including leaking the slab(s) containing
those ops.
The other callers to forbid_outofblock_ops() left the ops being
checked on the parser stack when performing this check, so the
parse stack clean up would release the ops, but the field initaliser
code removes the OP from the parse stack before
class_set_field_defop() so the OP and its children leaked.
To prevent that, populate the defop for the field with the supplied ops
before calling forbid_outofblock_ops(), then as the stack rewinds
class_seal_stash() will check the error count and free the ops.
FixesPerl#20812
0 commit comments