mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out changeset a9137f699a08 (bug 1146696) for cgc orange CLOSED TREE
This commit is contained in:
parent
aa62f321e0
commit
e226c3a7c6
@ -232,7 +232,7 @@ GCRuntime::tryNewTenuredThing(ExclusiveContext* cx, AllocKind kind, size_t thing
|
|||||||
{
|
{
|
||||||
T* t = reinterpret_cast<T*>(cx->arenas()->allocateFromFreeList(kind, thingSize));
|
T* t = reinterpret_cast<T*>(cx->arenas()->allocateFromFreeList(kind, thingSize));
|
||||||
if (!t)
|
if (!t)
|
||||||
t = reinterpret_cast<T*>(refillFreeListFromAnyThread<allowGC>(cx, kind, thingSize));
|
t = reinterpret_cast<T*>(refillFreeListFromAnyThread<allowGC>(cx, kind));
|
||||||
|
|
||||||
checkIncrementalZoneState(cx, t);
|
checkIncrementalZoneState(cx, t);
|
||||||
TraceTenuredAlloc(t, kind);
|
TraceTenuredAlloc(t, kind);
|
||||||
@ -241,19 +241,19 @@ GCRuntime::tryNewTenuredThing(ExclusiveContext* cx, AllocKind kind, size_t thing
|
|||||||
|
|
||||||
template <AllowGC allowGC>
|
template <AllowGC allowGC>
|
||||||
/* static */ void*
|
/* static */ void*
|
||||||
GCRuntime::refillFreeListFromAnyThread(ExclusiveContext* cx, AllocKind thingKind, size_t thingSize)
|
GCRuntime::refillFreeListFromAnyThread(ExclusiveContext* cx, AllocKind thingKind)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(cx->arenas()->freeLists[thingKind].isEmpty());
|
MOZ_ASSERT(cx->arenas()->freeLists[thingKind].isEmpty());
|
||||||
|
|
||||||
if (cx->isJSContext())
|
if (cx->isJSContext())
|
||||||
return refillFreeListFromMainThread<allowGC>(cx->asJSContext(), thingKind, thingSize);
|
return refillFreeListFromMainThread<allowGC>(cx->asJSContext(), thingKind);
|
||||||
|
|
||||||
return refillFreeListOffMainThread(cx, thingKind);
|
return refillFreeListOffMainThread(cx, thingKind);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <AllowGC allowGC>
|
template <AllowGC allowGC>
|
||||||
/* static */ void*
|
/* static */ void*
|
||||||
GCRuntime::refillFreeListFromMainThread(JSContext* cx, AllocKind thingKind, size_t thingSize)
|
GCRuntime::refillFreeListFromMainThread(JSContext* cx, AllocKind thingKind)
|
||||||
{
|
{
|
||||||
JSRuntime* rt = cx->runtime();
|
JSRuntime* rt = cx->runtime();
|
||||||
MOZ_ASSERT(!rt->isHeapBusy(), "allocating while under GC");
|
MOZ_ASSERT(!rt->isHeapBusy(), "allocating while under GC");
|
||||||
@ -277,10 +277,6 @@ GCRuntime::refillFreeListFromMainThread(JSContext* cx, AllocKind thingKind, size
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retry the allocation after the last-ditch GC.
|
// Retry the allocation after the last-ditch GC.
|
||||||
// Note that due to GC callbacks we might already have allocated an arena
|
|
||||||
// for this thing kind!
|
|
||||||
thing = cx->arenas()->allocateFromFreeList(thingKind, thingSize);
|
|
||||||
if (!thing)
|
|
||||||
thing = tryRefillFreeListFromMainThread(cx, thingKind);
|
thing = tryRefillFreeListFromMainThread(cx, thingKind);
|
||||||
if (thing)
|
if (thing)
|
||||||
return thing;
|
return thing;
|
||||||
|
@ -879,11 +879,9 @@ class GCRuntime
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
static void checkIncrementalZoneState(ExclusiveContext* cx, T* t);
|
static void checkIncrementalZoneState(ExclusiveContext* cx, T* t);
|
||||||
template <AllowGC allowGC>
|
template <AllowGC allowGC>
|
||||||
static void* refillFreeListFromAnyThread(ExclusiveContext* cx, AllocKind thingKind,
|
static void* refillFreeListFromAnyThread(ExclusiveContext* cx, AllocKind thingKind);
|
||||||
size_t thingSize);
|
|
||||||
template <AllowGC allowGC>
|
template <AllowGC allowGC>
|
||||||
static void* refillFreeListFromMainThread(JSContext* cx, AllocKind thingKind,
|
static void* refillFreeListFromMainThread(JSContext* cx, AllocKind thingKind);
|
||||||
size_t thingSize);
|
|
||||||
static void* tryRefillFreeListFromMainThread(JSContext* cx, AllocKind thingKind);
|
static void* tryRefillFreeListFromMainThread(JSContext* cx, AllocKind thingKind);
|
||||||
static void* refillFreeListOffMainThread(ExclusiveContext* cx, AllocKind thingKind);
|
static void* refillFreeListOffMainThread(ExclusiveContext* cx, AllocKind thingKind);
|
||||||
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
// |jit-test| --no-ggc
|
|
||||||
gc();
|
|
||||||
dbg1 = new Debugger();
|
|
||||||
root2 = newGlobal();
|
|
||||||
dbg1.memory.onGarbageCollection = function(){}
|
|
||||||
dbg1.addDebuggee(root2);
|
|
||||||
for (var j = 0; j < 9999; ++j) {
|
|
||||||
try {
|
|
||||||
a
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
gcparam("maxBytes", gcparam("gcBytes") + 8000);
|
|
||||||
try {
|
|
||||||
function g(i) {
|
|
||||||
if (i == 0)
|
|
||||||
return;
|
|
||||||
var x = "";
|
|
||||||
function f() {}
|
|
||||||
eval('');
|
|
||||||
g(i - 1);
|
|
||||||
}
|
|
||||||
g(100);
|
|
||||||
} catch (e) {
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user