void RootObject::finalize(JSC::Handle<JSC::Unknown> handle, void*) { RuntimeObject* object = static_cast<RuntimeObject*>(handle.get().asCell()); Ref<RootObject> protect(*this); object->invalidate(); weakRemove(m_runtimeObjects, object, object); }
void JITThunks::finalize(Handle<Unknown> handle, void*) { auto* nativeExecutable = jsCast<NativeExecutable*>(handle.get().asCell()); weakRemove(*m_hostFunctionStubMap, std::make_tuple(nativeExecutable->function(), nativeExecutable->constructor(), nativeExecutable->name()), nativeExecutable); }
void RegExpCache::finalize(Handle<Unknown> handle, void*) { RegExp* regExp = static_cast<RegExp*>(handle.get().asCell()); weakRemove(m_weakCache, regExp->key(), regExp); regExp->invalidateCode(); }
void RootObject::removeRuntimeObject(RuntimeObject* object) { if (!m_isValid) return; weakRemove(m_runtimeObjects, object, object); }
void NPRuntimeObjectMap::finalize(JSC::Handle<JSC::Unknown> handle, void* context) { JSNPObject* object = jsCast<JSNPObject*>(handle.get().asCell()); weakRemove(m_jsNPObjects, static_cast<NPObject*>(context), object); addToInvalidationQueue(object->leakNPObject()); }
void NPRuntimeObjectMap::finalize(JSC::JSCell*& cell, void* context) { JSNPObject& object = jsCast<JSNPObject&>(*cell); weakRemove(m_jsNPObjects, static_cast<NPObject*>(context), &object); addToInvalidationQueue(object.leakNPObject()); }
void JITThunks::finalize(JSCell*& cell, void*) { auto* nativeExecutable = jsCast<NativeExecutable*>(cell); weakRemove(*m_hostFunctionStubMap, std::make_pair(nativeExecutable->function(), nativeExecutable->constructor()), nativeExecutable); }