Ignore:
Timestamp:
Apr 27, 2012, 10:57:46 PM (13 years ago)
Author:
[email protected]
Message:

Made WeakSet::allocate() static and removed its JSGlobalData argument
https://bugs.webkit.org/show_bug.cgi?id=85128

Reviewed by Anders Carlsson.

../JavaScriptCore:

This is a step toward faster finalization.

WeakSet::allocate() now deduces which WeakSet to allocate from based on
its JSCell* argument. (Currently, there's only one WeakSet, but soon
there will be many.)

This was a global replace of "globalData.heap.weakSet()->allocate" with
"WeakSet::allocate", plus by-hand removal of the JSGlobalData argument.

  • heap/WeakSetInlines.h: Copied from Source/JavaScriptCore/heap/WeakSet.h.

I had to split out WeakSet::allocate() in to a separate header to avoid
a cycle.

(JSC::WeakSet::allocate): We can mask the pointer we're passed to
figure out where to allocate our WeakImpl. (Soon, we'll use this to
associate the WeakImpl with the GC block it references.)

../WebCore:

Mechanically removed JSGlobalData arguments from PassWeak<T> and Weak<T> allocation.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsStringSlowCase):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::setWrapper):

  • bindings/js/JSNodeFilterCondition.cpp:

(WebCore::JSNodeFilterCondition::JSNodeFilterCondition):

  • bindings/js/ScriptWrappable.h:

(WebCore::ScriptWrappable::setWrapper):

  • bridge/jsc/BridgeJSC.cpp:

(JSC::Bindings::Instance::createRuntimeObject):

  • bridge/qt/qt_runtime.cpp:

(JSC::Bindings::QtRuntimeMethod::finishCreation):

  • bridge/runtime_root.cpp:

(JSC::Bindings::RootObject::addRuntimeObject):

../WebKit2:

Mechanically removed JSGlobalData arguments from PassWeak<T> and Weak<T> allocation.

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::getOrCreateJSObject):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/WeakSet.h

    r115538 r115545  
    4040    ~WeakSet();
    4141
    42     WeakImpl* allocate(JSValue, WeakHandleOwner* = 0, void* context = 0);
     42    static WeakImpl* allocate(JSValue, WeakHandleOwner* = 0, void* context = 0);
    4343    static void deallocate(WeakImpl*);
    4444
     
    7070}
    7171
    72 inline WeakImpl* WeakSet::allocate(JSValue jsValue, WeakHandleOwner* weakHandleOwner, void* context)
    73 {
    74     WeakBlock::FreeCell* allocator = m_allocator;
    75     if (UNLIKELY(!allocator))
    76         allocator = findAllocator();
    77     m_allocator = allocator->next;
    78 
    79     WeakImpl* weakImpl = WeakBlock::asWeakImpl(allocator);
    80     return new (NotNull, weakImpl) WeakImpl(jsValue, weakHandleOwner, context);
    81 }
    82 
    8372inline void WeakSet::deallocate(WeakImpl* weakImpl)
    8473{
Note: See TracChangeset for help on using the changeset viewer.