Title: [172932] trunk/Source/_javascript_Core
Revision
172932
Author
msab...@apple.com
Date
2014-08-25 12:32:40 -0700 (Mon, 25 Aug 2014)

Log Message

After r172867 another crash in in js/dom/line-column-numbers.html
https://bugs.webkit.org/show_bug.cgi?id=136192

Reviewed by Geoffrey Garen.

In lookupExceptionHandlerFromCallerFrame(), We need to use the caller's CallFrame
and VMEntryFrame when calling genericUnwind().  NativeCallFrameTracerWithRestore()
does that for us.

In general, NativeCallFrameTracerWithRestore(), restores the values because we may
do more processing that requires the current callFrame and vmEntryFrame before we
get to the catch handler where we change these to the catch values.  In this
particular case, that restoration isn't currently needed, but we add complexity
and possible future confusion if we create another NativeCallFrameTracerXXX()
version that doesn't restore the values.

* jit/JITOperations.cpp:
(JSC::lookupExceptionHandlerFromCallerFrame): Changed NativeCallFrameTracer() to
NativeCallFrameTracerWithRestore() so that VM::topVMEntryFrame will be updated
before calling genericUnwind().

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (172931 => 172932)


--- trunk/Source/_javascript_Core/ChangeLog	2014-08-25 18:46:01 UTC (rev 172931)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-08-25 19:32:40 UTC (rev 172932)
@@ -1,3 +1,26 @@
+2014-08-22  Michael Saboff  <msab...@apple.com>
+
+        After r172867 another crash in in js/dom/line-column-numbers.html
+        https://bugs.webkit.org/show_bug.cgi?id=136192
+
+        Reviewed by Geoffrey Garen.
+
+        In lookupExceptionHandlerFromCallerFrame(), We need to use the caller's CallFrame
+        and VMEntryFrame when calling genericUnwind().  NativeCallFrameTracerWithRestore()
+        does that for us.
+
+        In general, NativeCallFrameTracerWithRestore(), restores the values because we may
+        do more processing that requires the current callFrame and vmEntryFrame before we
+        get to the catch handler where we change these to the catch values.  In this
+        particular case, that restoration isn't currently needed, but we add complexity
+        and possible future confusion if we create another NativeCallFrameTracerXXX()
+        version that doesn't restore the values.
+
+        * jit/JITOperations.cpp:
+        (JSC::lookupExceptionHandlerFromCallerFrame): Changed NativeCallFrameTracer() to
+        NativeCallFrameTracerWithRestore() so that VM::topVMEntryFrame will be updated
+        before calling genericUnwind().
+
 2014-08-24  Brian J. Burg  <b...@cs.washington.edu>
 
         Web Inspector: rename Inspector::TypeBuilder to Inspector::Protocol

Modified: trunk/Source/_javascript_Core/jit/JITOperations.cpp (172931 => 172932)


--- trunk/Source/_javascript_Core/jit/JITOperations.cpp	2014-08-25 18:46:01 UTC (rev 172931)
+++ trunk/Source/_javascript_Core/jit/JITOperations.cpp	2014-08-25 19:32:40 UTC (rev 172932)
@@ -1844,7 +1844,7 @@
     CallFrame* callerFrame = exec->callerFrame(vmEntryFrame);
     ASSERT(callerFrame);
 
-    NativeCallFrameTracer tracer(vm, callerFrame);
+    NativeCallFrameTracerWithRestore tracer(vm, vmEntryFrame, callerFrame);
 
     JSValue exceptionValue = vm->exception();
     ASSERT(exceptionValue);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to