Unreviewed, rolling out r172009.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Aug 2014 23:06:03 +0000 (23:06 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Aug 2014 23:06:03 +0000 (23:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=135627

"Commit landed on trunk instead of ftlopt branch." (Requested
by saamyjoon on #webkit).

Reverted changeset:

"Create a more generic way for VMEntryScope to notify those
interested that it will be destroyed"
https://bugs.webkit.org/show_bug.cgi?id=135358
http://trac.webkit.org/changeset/172009

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@172098 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/debugger/Debugger.cpp
Source/JavaScriptCore/runtime/VMEntryScope.cpp
Source/JavaScriptCore/runtime/VMEntryScope.h

index bef6c73..cf93c6f 100644 (file)
@@ -1,3 +1,18 @@
+2014-08-05  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r172009.
+        https://bugs.webkit.org/show_bug.cgi?id=135627
+
+        "Commit landed on trunk instead of ftlopt branch." (Requested
+        by saamyjoon on #webkit).
+
+        Reverted changeset:
+
+        "Create a more generic way for VMEntryScope to notify those
+        interested that it will be destroyed"
+        https://bugs.webkit.org/show_bug.cgi?id=135358
+        http://trac.webkit.org/changeset/172009
+
 2014-08-05  Alex Christensen  <achristensen@webkit.org>
 
         More work on CMake.
index 9037d8e..168d7a3 100644 (file)
@@ -335,14 +335,7 @@ void Debugger::recompileAllJSFunctions(VM* vm)
     // If JavaScript is running, it's not safe to recompile, since we'll end
     // up throwing away code that is live on the stack.
     if (vm->entryScope) {
-        auto listener = [] (VM* vm, JSGlobalObject* globalObject) 
-        {
-            Debugger* debugger = globalObject->debugger();
-            if (debugger)
-                debugger->recompileAllJSFunctions(vm);
-        };
-
-        vm->entryScope->addEntryScopeDidPopListener(this, listener);
+        vm->entryScope->setRecompilationNeeded(true);
         return;
     }
 
index 46bcdbc..a5e259f 100644 (file)
@@ -36,6 +36,7 @@ namespace JSC {
 VMEntryScope::VMEntryScope(VM& vm, JSGlobalObject* globalObject)
     : m_vm(vm)
     , m_globalObject(globalObject)
+    , m_recompilationNeeded(false)
 {
     ASSERT(wtfThreadData().stack().isGrowingDownward());
     if (!vm.entryScope) {
@@ -54,11 +55,6 @@ VMEntryScope::VMEntryScope(VM& vm, JSGlobalObject* globalObject)
     vm.clearExceptionStack();
 }
 
-void VMEntryScope::addEntryScopeDidPopListener(void* key, EntryScopeDidPopListener listener)
-{
-    m_allEntryScopeDidPopListeners.set(key, listener);
-}
-
 VMEntryScope::~VMEntryScope()
 {
     if (m_vm.entryScope != this)
@@ -66,11 +62,9 @@ VMEntryScope::~VMEntryScope()
 
     m_vm.entryScope = nullptr;
 
-    auto iter = m_allEntryScopeDidPopListeners.begin();
-    auto end = m_allEntryScopeDidPopListeners.end();
-    for ( ; iter != end; ++iter) {
-        EntryScopeDidPopListener listener = iter->value;
-        listener(&m_vm, m_globalObject);
+    if (m_recompilationNeeded) {
+        if (Debugger* debugger = m_globalObject->debugger())
+            debugger->recompileAllJSFunctions(&m_vm);
     }
 }
 
index 99e9ba8..854e797 100644 (file)
@@ -27,7 +27,6 @@
 #define VMEntryScope_h
 
 #include "Interpreter.h"
-#include <wtf/HashMap.h>
 #include <wtf/StackBounds.h>
 #include <wtf/StackStats.h>
 
@@ -43,13 +42,12 @@ public:
 
     JSGlobalObject* globalObject() const { return m_globalObject; }
 
-    typedef std::function<void (VM*, JSGlobalObject*)> EntryScopeDidPopListener;
-    void addEntryScopeDidPopListener(void*, EntryScopeDidPopListener);
+    void setRecompilationNeeded(bool recompileNeeded) { m_recompilationNeeded = recompileNeeded; }
 
 private:
     VM& m_vm;
     JSGlobalObject* m_globalObject;
-    HashMap<void*, EntryScopeDidPopListener> m_allEntryScopeDidPopListeners;
+    bool m_recompilationNeeded;
 };
 
 } // namespace JSC