Reference count decrement - must be out-of-line to prevent cross-binary vtable issues. Returns true if the reference count reached zero (object should be destroyed).
| 34 | // Reference count decrement - must be out-of-line to prevent cross-binary vtable issues. |
| 35 | // Returns true if the reference count reached zero (object should be destroyed). |
| 36 | bool ControlBlockBase::remove_shared_ref() { |
| 37 | if (shared_count == NO_TRACKING_VALUE) { |
| 38 | return false; // Never destroy in no-tracking mode |
| 39 | } |
| 40 | return (--shared_count == 0); |
| 41 | } |
| 42 | |
| 43 | // Check if this control block is in no-tracking mode. |
| 44 | bool ControlBlockBase::is_no_tracking() const { |