On Thu, Apr 1, 2021 at 1:22 PM Stephen R. van den Berg srb@cuci.nl wrote:
Tobias S. Josefowitz wrote:
PIKE_T_FREE is only acceptable in a limited amount of places, and inside mappings is not one of them.
I do not insert it into a mapping, the size-calculation code tries to just below this code fragment.
Then that most likely means you're keeping PIKE_T_FREE type svalues around in places where you shouldn't.
In particular, as far as I understand, PIKE_T_FREEs should never be user-reachable.
If one would insert an object into a multiset, and the object then gets destructed; what happens to the references from within the multiset to the object?
Not a multiset expert, but in general svalue pointing to destructed objects keep doing so, the struct object* stays around (but their o->prog is NULL), and the svalue's may gradually get converted to T_INT, subtype NUMBER_DESTRUCTED by maintenance code and possibly even the GC during runs.