MCPcopy Create free account
hub / github.com/HaxeFoundation/hxcpp / GCSetFinalizer

Method GCSetFinalizer

src/hx/gc/Immix.cpp:2775–2791  ·  view source on GitHub ↗

Callback finalizer on non-abstract type;

Source from the content-addressed store, hash-verified

2773
2774// Callback finalizer on non-abstract type;
2775void GCSetFinalizer( hx::Object *obj, hx::finalizer f )
2776{
2777 if (!obj)
2778 throw Dynamic(HX_CSTRING("set_finalizer - invalid null object"));
2779 if (((unsigned int *)obj)[-1] & HX_GC_CONST_ALLOC_BIT)
2780 throw Dynamic(HX_CSTRING("set_finalizer - invalid const object"));
2781
2782 std::lock_guard<std::mutex> lock(*gSpecialObjectLock);
2783 if (f==0)
2784 {
2785 FinalizerMap::iterator i = sFinalizerMap.find(obj);
2786 if (i!=sFinalizerMap.end())
2787 sFinalizerMap.erase(i);
2788 }
2789 else
2790 sFinalizerMap[obj] = f;
2791}
2792
2793
2794// Callback finalizer on non-abstract type;

Callers

nothing calls this directly

Calls 3

findMethod · 0.80
eraseMethod · 0.80
DynamicClass · 0.50

Tested by

no test coverage detected