]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - jit/GCAwareJITStubRoutine.cpp
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / jit / GCAwareJITStubRoutine.cpp
index f681dd84703a84a194441e5747f6b5fa0c00eb3f..bfb07a04346f59a89f8b7e5edf538bfff5dcfb49 100644 (file)
 
 #include "Heap.h"
 #include "VM.h"
 
 #include "Heap.h"
 #include "VM.h"
-#include "Operations.h"
+#include "JSCInlines.h"
 #include "SlotVisitor.h"
 #include "Structure.h"
 
 namespace JSC {
 
 GCAwareJITStubRoutine::GCAwareJITStubRoutine(
 #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)
     : JITStubRoutine(code)
     , m_mayBeExecuting(false)
     , m_isJettisoned(false)
-    , m_isClosureCall(isClosureCall)
 {
     vm.heap.m_jitStubRoutines.add(this);
 }
 {
     vm.heap.m_jitStubRoutines.add(this);
 }
@@ -95,19 +94,6 @@ void MarkingGCAwareJITStubRoutineWithOneObject::markRequiredObjectsInternal(Slot
     visitor.append(&m_object);
 }
 
     visitor.append(&m_object);
 }
 
-PassRefPtr<JITStubRoutine> createJITStubRoutine(
-    const MacroAssemblerCodeRef& code,
-    VM& vm,
-    const JSCell*,
-    bool makesCalls)
-{
-    if (!makesCalls)
-        return adoptRef(new JITStubRoutine(code));
-
-    return static_pointer_cast<JITStubRoutine>(
-        adoptRef(new GCAwareJITStubRoutine(code, vm)));
-}
-
 PassRefPtr<JITStubRoutine> createJITStubRoutine(
     const MacroAssemblerCodeRef& code,
     VM& vm,
 PassRefPtr<JITStubRoutine> createJITStubRoutine(
     const MacroAssemblerCodeRef& code,
     VM& vm,
@@ -118,6 +104,11 @@ PassRefPtr<JITStubRoutine> createJITStubRoutine(
     if (!makesCalls)
         return adoptRef(new JITStubRoutine(code));
     
     if (!makesCalls)
         return adoptRef(new JITStubRoutine(code));
     
+    if (!object) {
+        return static_pointer_cast<JITStubRoutine>(
+            adoptRef(new GCAwareJITStubRoutine(code, vm)));
+    }
+    
     return static_pointer_cast<JITStubRoutine>(
         adoptRef(new MarkingGCAwareJITStubRoutineWithOneObject(code, vm, owner, object)));
 }
     return static_pointer_cast<JITStubRoutine>(
         adoptRef(new MarkingGCAwareJITStubRoutineWithOneObject(code, vm, owner, object)));
 }