mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-20 23:24:16 +00:00
Fix segfault during GUI GC
This commit is contained in:
@@ -9,7 +9,7 @@ cd "$(dirname "$0")"
|
||||
PV=128.13.0
|
||||
FOLDER="mozjs-${PV}"
|
||||
# If same-version changes are needed, increment this.
|
||||
LIB_VERSION="${PV}+wfg0"
|
||||
LIB_VERSION="${PV}+wfg1"
|
||||
LIB_NAME="mozjs128"
|
||||
|
||||
build_archive()
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Itms <itms@wildfiregames.com>
|
||||
# Date 1754863729 0
|
||||
# Node ID 45a4336df6a83fbb6a448fe5ec14b703b38313d9
|
||||
# Parent 1ecdcb55f42515c6542d4f9d4580899d55a6a790
|
||||
Bug 1982134 - Choose specific callback in removeBlackRootsTracer. a=RyanVM
|
||||
|
||||
This fixes a regression introduced in the refactoring at Bug 1846835 / D185307
|
||||
|
||||
Original Revision: https://phabricator.services.mozilla.com/D260541
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D260608
|
||||
|
||||
|
||||
diff --git a/js/src/gc/GC.cpp b/js/src/gc/GC.cpp
|
||||
--- a/js/src/gc/GC.cpp
|
||||
+++ b/js/src/gc/GC.cpp
|
||||
@@ -1559,17 +1559,17 @@ static bool EraseCallback(CallbackVector
|
||||
|
||||
bool GCRuntime::addBlackRootsTracer(JSTraceDataOp traceOp, void* data) {
|
||||
AssertHeapIsIdle();
|
||||
return blackRootTracers.ref().append(Callback<JSTraceDataOp>(traceOp, data));
|
||||
}
|
||||
|
||||
void GCRuntime::removeBlackRootsTracer(JSTraceDataOp traceOp, void* data) {
|
||||
// Can be called from finalizers
|
||||
- MOZ_ALWAYS_TRUE(EraseCallback(blackRootTracers.ref(), traceOp));
|
||||
+ MOZ_ALWAYS_TRUE(EraseCallback(blackRootTracers.ref(), traceOp, data));
|
||||
}
|
||||
|
||||
void GCRuntime::setGrayRootsTracer(JSGrayRootsTracer traceOp, void* data) {
|
||||
AssertHeapIsIdle();
|
||||
grayRootTracer.ref() = {traceOp, data};
|
||||
}
|
||||
|
||||
void GCRuntime::clearBlackAndGrayRootTracers() {
|
||||
|
||||
@@ -18,6 +18,10 @@ patch -p1 <"${PATCHES}"/FixLibNames.diff
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1935346
|
||||
patch -p1 <"${PATCHES}"/FixPkgConfigDebug.diff
|
||||
|
||||
# Fix a regression in GC tracing, which creates segfaults during GCs
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1982134
|
||||
patch -p1 <"${PATCHES}"/FixExtraGCTracing.diff
|
||||
|
||||
# There is an issue on 32-bit linux builds sometimes.
|
||||
# NB: the patch here is Comment 21 modified by Comment 25
|
||||
# but that seems to imperfectly fix the issue with GCC.
|
||||
|
||||
Reference in New Issue
Block a user