Ignore:
Timestamp:
Feb 6, 2014, 4:42:21 PM (11 years ago)
Author:
[email protected]
Message:

Heap::writeBarrier shouldn't be static
https://bugs.webkit.org/show_bug.cgi?id=127807

Reviewed by Geoffrey Garen.

Currently it looks up the Heap in which to fire the write barrier by using
the cell passed to it. Almost every call site already has a reference to the
VM or the Heap itself. It seems wasteful to look it up all over again.

Source/JavaScriptCore:

(JSC::CopyWriteBarrier::set):

  • heap/Heap.cpp:

(JSC::Heap::writeBarrier):

  • heap/Heap.h:

(JSC::Heap::writeBarrier):

  • jit/JITOperations.cpp:
  • jit/JITWriteBarrier.h:

(JSC::JITWriteBarrierBase::set):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_write_barrier_slow):

  • runtime/Arguments.h:
  • runtime/JSWeakMap.cpp:
  • runtime/MapData.cpp:

(JSC::MapData::ensureSpaceForAppend):

  • runtime/PropertyTable.cpp:

(JSC::PropertyTable::PropertyTable):

  • runtime/Structure.h:
  • runtime/WriteBarrier.h:
  • runtime/WriteBarrierInlines.h: Added.

Source/WebCore:

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::JSEventListener):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::jsFunction):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JITWriteBarrier.h

    r163556 r163576  
    7878    }
    7979
    80     void set(VM&, CodeLocationDataLabelPtr location, JSCell* owner, JSCell* value)
     80    void set(VM& vm, CodeLocationDataLabelPtr location, JSCell* owner, JSCell* value)
    8181    {
    82         Heap::writeBarrier(owner, value);
     82        vm.heap.writeBarrier(owner, value);
    8383        m_location = location;
    8484        ASSERT(((!!m_location) && m_location.executableAddress() != JITWriteBarrierFlag) || (location.executableAddress() == m_location.executableAddress()));
Note: See TracChangeset for help on using the changeset viewer.