Skip to content
  • ggaren@apple.com's avatar
    Added a simpler mechanism for registering one-off finalizers · 75bf76c6
    ggaren@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=69466
    
    Reviewed by Oliver Hunt.
    
    * heap/Heap.cpp:
    (JSC::Heap::addFinalizer):
    (JSC::Heap::FinalizerOwner::finalize):
    * heap/Heap.h: New function for adding an arbitrary finalizer for an
    arbitrary cell without declaring any special classes or Handles yourself.
    
    * JavaScriptCore.exp: Fix build.
    
    * runtime/Executable.cpp:
    (JSC::ExecutableBase::clearCode):
    (JSC::ExecutableBase::clearCodeVirtual):
    (JSC::EvalExecutable::clearCodeVirtual):
    (JSC::ProgramExecutable::clearCodeVirtual):
    (JSC::FunctionExecutable::discardCode):
    (JSC::FunctionExecutable::clearCodeVirtual):
    * runtime/Executable.h:
    (JSC::ExecutableBase::finishCreation): Use the new mechanism for eager
    finalization of executables.
    
    * runtime/JSGlobalObject.cpp:
    (JSC::JSGlobalObject::clearRareData):
    * runtime/JSGlobalObject.h:
    (JSC::JSGlobalObject::createRareDataIfNeeded):
    (JSC::JSGlobalObject::registerWeakMap): Use the new mechanism for eager
    finalization of weak maps.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    75bf76c6