2008-07-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>
authorcwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Jul 2008 01:25:36 +0000 (01:25 +0000)
committercwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Jul 2008 01:25:36 +0000 (01:25 +0000)
        Reviewed by Geoff.

        Bug 19926: URL causes crash within a minute
        <https://bugs.webkit.org/show_bug.cgi?id=19926>

        Add a check that lastGlobalObject is non-null in Machine::execute()
        before copying its globals to the current register file.

        In theory, it is possible to make a test case for this, but it will
        take a while to get it right.

        * VM/Machine.cpp:
        (KJS::Machine::execute):

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

JavaScriptCore/ChangeLog
JavaScriptCore/VM/Machine.cpp

index ce44e98a17c5ce5a49d26590f44ae1c95a70fbae..3d7a749856cfa5c42ac8ac85443bd87f648d30d0 100644 (file)
@@ -1,3 +1,19 @@
+2008-07-07  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
+
+        Reviewed by Geoff.
+
+        Bug 19926: URL causes crash within a minute
+        <https://bugs.webkit.org/show_bug.cgi?id=19926>
+
+        Add a check that lastGlobalObject is non-null in Machine::execute()
+        before copying its globals to the current register file.
+
+        In theory, it is possible to make a test case for this, but it will
+        take a while to get it right.
+
+        * VM/Machine.cpp:
+        (KJS::Machine::execute):
+
 2008-07-07  Darin Adler  <darin@apple.com>
 
         Rubber stamped by Adele.
index 899df48628348fdf7cb737a025171d7e3310e5e1..8109549ce12186bd00e0e762d1e517048932cd18 100644 (file)
@@ -709,7 +709,7 @@ JSValue* Machine::execute(ProgramNode* programNode, ExecState* exec, ScopeChainN
             (*profiler)->didFinishAllExecution(exec);
     }
 
-    if (m_reentryDepth && globalObject != lastGlobalObject)
+    if (m_reentryDepth && lastGlobalObject && globalObject != lastGlobalObject)
         lastGlobalObject->copyGlobalsTo(m_registerFile);
 
     m_registerFile.shrink(oldSize);