X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/93a3786624b2768d89bfa27e46598dc64e2fb70a..refs/heads/master:/jit/GCAwareJITStubRoutine.cpp diff --git a/jit/GCAwareJITStubRoutine.cpp b/jit/GCAwareJITStubRoutine.cpp index f681dd8..bfb07a0 100644 --- a/jit/GCAwareJITStubRoutine.cpp +++ b/jit/GCAwareJITStubRoutine.cpp @@ -30,18 +30,17 @@ #include "Heap.h" #include "VM.h" -#include "Operations.h" +#include "JSCInlines.h" #include "SlotVisitor.h" #include "Structure.h" namespace JSC { GCAwareJITStubRoutine::GCAwareJITStubRoutine( - const MacroAssemblerCodeRef& code, VM& vm, bool isClosureCall) + const MacroAssemblerCodeRef& code, VM& vm) : JITStubRoutine(code) , m_mayBeExecuting(false) , m_isJettisoned(false) - , m_isClosureCall(isClosureCall) { vm.heap.m_jitStubRoutines.add(this); } @@ -95,19 +94,6 @@ void MarkingGCAwareJITStubRoutineWithOneObject::markRequiredObjectsInternal(Slot visitor.append(&m_object); } -PassRefPtr createJITStubRoutine( - const MacroAssemblerCodeRef& code, - VM& vm, - const JSCell*, - bool makesCalls) -{ - if (!makesCalls) - return adoptRef(new JITStubRoutine(code)); - - return static_pointer_cast( - adoptRef(new GCAwareJITStubRoutine(code, vm))); -} - PassRefPtr createJITStubRoutine( const MacroAssemblerCodeRef& code, VM& vm, @@ -118,6 +104,11 @@ PassRefPtr createJITStubRoutine( if (!makesCalls) return adoptRef(new JITStubRoutine(code)); + if (!object) { + return static_pointer_cast( + adoptRef(new GCAwareJITStubRoutine(code, vm))); + } + return static_pointer_cast( adoptRef(new MarkingGCAwareJITStubRoutineWithOneObject(code, vm, owner, object))); }