Bug 126781 - reentrant-caching sometimes fails with LLInt disabled
Summary: reentrant-caching sometimes fails with LLInt disabled
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 116888
  Show dependency treegraph
 
Reported: 2014-01-10 14:03 PST by Filip Pizlo
Modified: 2014-01-15 14:13 PST (History)
7 users (show)

See Also:


Attachments
the patch (11.85 KB, patch)
2014-01-15 11:23 PST, Filip Pizlo
msaboff: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2014-01-10 14:03:34 PST
...
Comment 1 Filip Pizlo 2014-01-10 14:07:08 PST
Here's what it looks like:


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000001028087e9 lookupExceptionHandler + 25 (Interpreter.h:181)
1   ???                           	0x00004b55f6205096 0 + 82832573616278
2   com.apple.JavaScriptCore      	0x00000001028bf9ce callToJavaScript + 307
3   com.apple.JavaScriptCore      	0x00000001027de693 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 35 (VM.h:365)
4   com.apple.JavaScriptCore      	0x00000001027bac37 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 439 (Interpreter.cpp:953)
5   com.apple.JavaScriptCore      	0x000000010262789e JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 62 (CallData.cpp:39)
6   com.apple.JavaScriptCore      	0x00000001027af596 JSC::callGetter(JSC::ExecState*, JSC::JSValue, JSC::JSValue) + 166 (GetterSetter.cpp:62)
7   com.apple.JavaScriptCore      	0x000000010260d7a4 JSC::JSValue::get(JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&) const + 516 (JSObject.h:1541)
8   com.apple.JavaScriptCore      	0x0000000102802535 operationGetByIdOptimize + 149 (JITOperations.cpp:155)
9   ???                           	0x00004b55f6205208 0 + 82832573616648
10  ???                           	0x00004b55f6204da5 0 + 82832573615525
11  com.apple.JavaScriptCore      	0x00000001028bf9ce callToJavaScript + 307
12  com.apple.JavaScriptCore      	0x00000001027de693 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 35 (VM.h:365)
13  com.apple.JavaScriptCore      	0x00000001027bac37 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 439 (Interpreter.cpp:953)
14  com.apple.JavaScriptCore      	0x000000010262789e JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 62 (CallData.cpp:39)
15  com.apple.JavaScriptCore      	0x00000001027af596 JSC::callGetter(JSC::ExecState*, JSC::JSValue, JSC::JSValue) + 166 (GetterSetter.cpp:62)
16  com.apple.JavaScriptCore      	0x000000010260d7a4 JSC::JSValue::get(JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&) const + 516 (JSObject.h:1541)
17  com.apple.JavaScriptCore      	0x0000000102802535 operationGetByIdOptimize + 149 (JITOperations.cpp:155)
18  ???                           	0x00004b55f6205208 0 + 82832573616648
19  ???                           	0x00004b55f6204da5 0 + 82832573615525
20  com.apple.JavaScriptCore      	0x00000001028bf9ce callToJavaScript + 307
21  com.apple.JavaScriptCore      	0x00000001027de693 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 35 (VM.h:365)

... and so on.
Comment 2 Filip Pizlo 2014-01-15 11:23:54 PST
Created attachment 221285 [details]
the patch
Comment 3 Michael Saboff 2014-01-15 11:42:03 PST
Comment on attachment 221285 [details]
the patch

Any particular reason that you make the VM* the first argument to lookupExceptionHandler() ?  The pattern is to make the ExecState* the first arg.  This simplifies code.

r=me
Comment 4 Filip Pizlo 2014-01-15 14:13:49 PST
Landed in http://trac.webkit.org/changeset/162089