Changeset 153612 in webkit
- Timestamp:
- Aug 1, 2013 2:57:38 PM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r153583 r153612 1 2013-08-01 Michael Saboff <msaboff@apple.com> 2 3 REGRESSION: Crash beneath cti_vm_throw_slowpath due to invalid CallFrame pointer 4 https://bugs.webkit.org/show_bug.cgi?id=119140 5 6 Reviewed by Filip Pizlo. 7 8 Ensure that ExceptionHandler is returned by functions in two registers by encoding the value as a 64 bit int. 9 10 * jit/JITExceptions.cpp: 11 (JSC::encode): 12 * jit/JITExceptions.h: 13 * jit/JITStubs.cpp: 14 (JSC::cti_vm_throw_slowpath): 15 * jit/JITStubs.h: 16 1 17 2013-08-01 Julien Brianceau <jbrianceau@nds.com> 2 18 -
trunk/Source/JavaScriptCore/jit/JITExceptions.cpp
r153273 r153612 52 52 } 53 53 54 EncodedExceptionHandler encode(ExceptionHandler handler) 55 { 56 ExceptionHandlerUnion u; 57 u.handler = handler; 58 return u.encodedHandler; 59 } 60 54 61 ExceptionHandler genericThrow(VM* vm, ExecState* callFrame, JSValue exceptionValue, unsigned vPCIndex) 55 62 { -
trunk/Source/JavaScriptCore/jit/JITExceptions.h
r153222 r153612 45 45 }; 46 46 47 // EncodedExceptionHandler is used to convince the compiler to return an ExceptionHander 48 // struct in two registers for 32 bit builds. 49 typedef int64_t EncodedExceptionHandler; 50 51 union ExceptionHandlerUnion { 52 ExceptionHandler handler; 53 EncodedExceptionHandler encodedHandler; 54 }; 55 56 EncodedExceptionHandler encode(ExceptionHandler); 57 47 58 ExceptionHandler genericThrow(VM*, ExecState*, JSValue exceptionValue, unsigned vPCIndex); 48 59 -
trunk/Source/JavaScriptCore/jit/JITStubs.cpp
r153556 r153612 2157 2157 } 2158 2158 2159 E xceptionHandler JIT_STUB cti_vm_throw_slowpath(CallFrame* callFrame)2159 EncodedExceptionHandler JIT_STUB cti_vm_throw_slowpath(CallFrame* callFrame) 2160 2160 { 2161 2161 VM* vm = callFrame->codeBlock()->vm(); 2162 2162 vm->topCallFrame = callFrame; 2163 return jitThrowNew(vm, callFrame, vm->exception);2163 return encode(jitThrowNew(vm, callFrame, vm->exception)); 2164 2164 } 2165 2165 -
trunk/Source/JavaScriptCore/jit/JITStubs.h
r153232 r153612 417 417 void JIT_STUB cti_op_put_to_scope(STUB_ARGS_DECLARATION) WTF_INTERNAL; 418 418 419 E xceptionHandler JIT_STUB cti_vm_throw_slowpath(CallFrame*) REFERENCED_FROM_ASM WTF_INTERNAL;419 EncodedExceptionHandler JIT_STUB cti_vm_throw_slowpath(CallFrame*) REFERENCED_FROM_ASM WTF_INTERNAL; 420 420 } // extern "C" 421 421
Note: See TracChangeset
for help on using the changeset viewer.