Skip to content

Fixes extremely mysterious and incomprehensible pooling bug

Rob Nelson requested to merge pull/4236/feature4 into Bleeding-Edge

Created by: clusterfack

Debugmin wins Fixes #3251 (closed) Fixes #3898 (closed)

Probe helped me figure out this one because I saw the wires teleporting around after a singularity ripped him a new one. It had to be a double pooling issue, and since I couldn't replicate it normally I started testing around the singularity specifically.

I added

ASSERT(!(AM in masterPool["[AM.type]"]))

to experimental.dm line#87, which confirmed my suspicions when I loosed a singulo.

Turns out someone added extra sanity to singularity act to make sure it destroys objects, however both ex_act(1) and qdel(src) use returntopool, thus double pooling. I'm sure this is the cause of anytime someone has objects mysteriously disappear on them (if they are the type that are pooled).

Merge request reports