Skip to content

Commit 483056c

Browse files
Kudokmagiera
authored andcommitted
Disable DFG_JIT to fix possibly crash issue. (#105)
1 parent a89ef01 commit 483056c

File tree

3 files changed

+75
-1
lines changed

3 files changed

+75
-1
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
diff -aru target-org/webkit/Source/JavaScriptCore/bytecode/CodeBlock.cpp target/webkit/Source/JavaScriptCore/bytecode/CodeBlock.cpp
2+
--- target-org/webkit/Source/JavaScriptCore/bytecode/CodeBlock.cpp 2019-03-26 11:25:13.000000000 +0800
3+
+++ target/webkit/Source/JavaScriptCore/bytecode/CodeBlock.cpp 2019-03-26 16:41:18.000000000 +0800
4+
@@ -1437,6 +1437,7 @@
5+
result.add(callLinkInfo->codeOrigin(), ICStatus()).iterator->value.callLinkInfo = callLinkInfo;
6+
for (ByValInfo* byValInfo : m_byValInfos)
7+
result.add(CodeOrigin(byValInfo->bytecodeIndex), ICStatus()).iterator->value.byValInfo = byValInfo;
8+
+#if ENABLE(DFG_JIT) || ENABLE(FTL_JIT)
9+
if (JITCode::isOptimizingJIT(jitType())) {
10+
DFG::CommonData* dfgCommon = m_jitCode->dfgCommon();
11+
for (auto& pair : dfgCommon->recordedStatuses.calls)
12+
@@ -1448,6 +1449,7 @@
13+
for (auto& pair : dfgCommon->recordedStatuses.ins)
14+
result.add(pair.first, ICStatus()).iterator->value.inStatus = pair.second.get();
15+
}
16+
+#endif // ENABLE(DFG_JIT) || ENABLE(FTL_JIT)
17+
}
18+
#else
19+
UNUSED_PARAM(result);
20+
diff -aru target-org/webkit/Source/JavaScriptCore/bytecode/InByIdStatus.cpp target/webkit/Source/JavaScriptCore/bytecode/InByIdStatus.cpp
21+
--- target-org/webkit/Source/JavaScriptCore/bytecode/InByIdStatus.cpp 2019-03-26 11:25:13.000000000 +0800
22+
+++ target/webkit/Source/JavaScriptCore/bytecode/InByIdStatus.cpp 2019-03-26 16:41:18.000000000 +0800
23+
@@ -72,6 +72,7 @@
24+
CodeBlock* profiledBlock, ICStatusMap& baselineMap,
25+
ICStatusContextStack& contextStack, CodeOrigin codeOrigin, UniquedStringImpl* uid)
26+
{
27+
+#if ENABLE(DFG_JIT)
28+
ExitFlag didExit = hasBadCacheExitSite(profiledBlock, codeOrigin.bytecodeIndex);
29+
30+
for (ICStatusContext* context : contextStack) {
31+
@@ -104,6 +105,10 @@
32+
}
33+
34+
return computeFor(profiledBlock, baselineMap, codeOrigin.bytecodeIndex, uid, didExit);
35+
+#else // ENABLE(DFG_JIT)
36+
+ InByIdStatus result;
37+
+ return result;
38+
+#endif
39+
}
40+
#endif // ENABLE(JIT)
41+
42+
diff -aru target-org/webkit/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp target/webkit/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
43+
--- target-org/webkit/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp 2019-03-26 11:25:14.000000000 +0800
44+
+++ target/webkit/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp 2019-03-26 16:46:07.000000000 +0800
45+
@@ -118,7 +118,7 @@
46+
return computeFromLLInt(profiledBlock, bytecodeIndex, uid);
47+
48+
return result;
49+
-#else // ENABLE(JIT)
50+
+#else // ENABLE(DFG_JIT)
51+
UNUSED_PARAM(map);
52+
return PutByIdStatus(NoInformation);
53+
#endif // ENABLE(JIT)
54+
@@ -244,6 +244,7 @@
55+
56+
PutByIdStatus PutByIdStatus::computeFor(CodeBlock* baselineBlock, ICStatusMap& baselineMap, ICStatusContextStack& contextStack, CodeOrigin codeOrigin, UniquedStringImpl* uid)
57+
{
58+
+#if ENABLE(DFG_JIT)
59+
CallLinkStatus::ExitSiteData callExitSiteData =
60+
CallLinkStatus::computeExitSiteData(baselineBlock, codeOrigin.bytecodeIndex);
61+
ExitFlag didExit = hasExitSite(baselineBlock, codeOrigin.bytecodeIndex);
62+
@@ -280,6 +281,9 @@
63+
}
64+
65+
return computeFor(baselineBlock, baselineMap, codeOrigin.bytecodeIndex, uid, didExit, callExitSiteData);
66+
+#else // ENABLE(DFG_JIT)
67+
+ return PutByIdStatus(NoInformation);
68+
+#endif // ENABLE(DFG_JIT)
69+
}
70+
71+
PutByIdStatus PutByIdStatus::computeFor(JSGlobalObject* globalObject, const StructureSet& set, UniquedStringImpl* uid, bool isDirect)

scripts/compile/jsc.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ $TARGETDIR/webkit/Tools/Scripts/build-webkit \
8080
-DENABLE_API_TESTS=OFF \
8181
-DENABLE_SAMPLING_PROFILER=OFF \
8282
-DENABLE_JIT=ON \
83-
-DENABLE_DFG_JIT=ON \
83+
-DENABLE_DFG_JIT=OFF \
8484
-DENABLE_FTL_JIT=OFF \
8585
-DJSC_VERSION=\"${JSC_VERSION}\" \
8686
$BUILD_TYPE_FLAGS \

scripts/patch.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ JSC_PATCHSET=(
4545
# NDK r17c does not define __mulodi4, which is being used in debug build.
4646
# (However, NDK r19 fixed this)
4747
"jsc_fix_build_error_mulodi4.patch"
48+
49+
# Fix build error if disabling DFG_JIT
50+
"jsc_fix_build_error_disable_dfg.patch"
4851
)
4952

5053
if [[ "$I18N" = false ]]

0 commit comments

Comments
 (0)