summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2020-02-20 12:00:26 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-04-14 12:47:56 +0200
commit009c9dd2f82445de79cfedf03ddd8d321df9b69b (patch)
treebd5f8904957e6feb63af35b8008cd3ac9ada9647 /js
parent6407f1abd4f2f598f42cd416d7de9345c77e2444 (diff)
downloadUXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar.gz
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar.lz
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar.xz
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.zip
Issue #316 - Make the memory GC performance object conditional (WIP)
This was only added for GCubench and likely interfering with building without devtools-server.
Diffstat (limited to 'js')
-rw-r--r--js/public/HeapAPI.h2
-rw-r--r--js/src/gc/GCRuntime.h2
-rw-r--r--js/src/gc/Nursery.cpp3
-rw-r--r--js/src/jsgc.cpp2
-rw-r--r--js/src/jsgc.h2
-rw-r--r--js/src/shell/js.cpp2
6 files changed, 13 insertions, 0 deletions
diff --git a/js/public/HeapAPI.h b/js/public/HeapAPI.h
index e37d13e93..fef6c0c78 100644
--- a/js/public/HeapAPI.h
+++ b/js/public/HeapAPI.h
@@ -392,6 +392,7 @@ IsIncrementalBarrierNeededOnTenuredGCThing(JS::shadow::Runtime* rt, const JS::GC
return JS::shadow::Zone::asShadowZone(zone)->needsIncrementalBarrier();
}
+#ifdef MOZ_DEVTOOLS_SERVER
/**
* Create an object providing access to the garbage collector's internal notion
* of the current state of memory (both GC heap memory and GCthing-controlled
@@ -399,6 +400,7 @@ IsIncrementalBarrierNeededOnTenuredGCThing(JS::shadow::Runtime* rt, const JS::GC
*/
extern JS_PUBLIC_API(JSObject*)
NewMemoryInfoObject(JSContext* cx);
+#endif
} /* namespace gc */
} /* namespace js */
diff --git a/js/src/gc/GCRuntime.h b/js/src/gc/GCRuntime.h
index f102e9ef0..f43dcd351 100644
--- a/js/src/gc/GCRuntime.h
+++ b/js/src/gc/GCRuntime.h
@@ -741,7 +741,9 @@ class GCRuntime
void removeBlackRootsTracer(JSTraceDataOp traceOp, void* data);
void setMaxMallocBytes(size_t value);
+#ifdef MOZ_DEVTOOLS_SERVER
int32_t getMallocBytes() const { return mallocBytesUntilGC; }
+#endif
void resetMallocBytes();
bool isTooMuchMalloc() const { return mallocBytesUntilGC <= 0; }
void updateMallocCounter(JS::Zone* zone, size_t nbytes);
diff --git a/js/src/gc/Nursery.cpp b/js/src/gc/Nursery.cpp
index 93a0eb6a8..737d68bd0 100644
--- a/js/src/gc/Nursery.cpp
+++ b/js/src/gc/Nursery.cpp
@@ -505,7 +505,10 @@ js::Nursery::collect(JSRuntime* rt, JS::gcreason::Reason reason)
if (!isEnabled())
return;
+#ifdef MOZ_DEVTOOLS_SERVER
+ // No need to obsessively track this without devtools
rt->gc.incMinorGcNumber();
+#endif
rt->gc.stats.beginNurseryCollection(reason);
TraceMinorGCStart();
diff --git a/js/src/jsgc.cpp b/js/src/jsgc.cpp
index 5a9d732b6..4078ac0a7 100644
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -6776,6 +6776,7 @@ js::gc::NextCellUniqueId(JSRuntime* rt)
return rt->gc.nextCellUniqueId();
}
+#ifdef MOZ_DEVTOOLS_SERVER
namespace js {
namespace gc {
namespace MemInfo {
@@ -7032,6 +7033,7 @@ AutoEmptyNursery::AutoEmptyNursery(JSRuntime *rt)
} /* namespace gc */
} /* namespace js */
+#endif
#ifdef DEBUG
void
diff --git a/js/src/jsgc.h b/js/src/jsgc.h
index 952fd6bae..601f63daa 100644
--- a/js/src/jsgc.h
+++ b/js/src/jsgc.h
@@ -1357,8 +1357,10 @@ class ZoneList
ZoneList& operator=(const ZoneList& other) = delete;
};
+#ifdef MOZ_DEVTOOLS_SERVER
JSObject*
NewMemoryStatisticsObject(JSContext* cx);
+#endif
struct MOZ_RAII AutoAssertNoNurseryAlloc
{
diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp
index 36558a694..4b0c858a4 100644
--- a/js/src/shell/js.cpp
+++ b/js/src/shell/js.cpp
@@ -7090,6 +7090,7 @@ NewGlobalObject(JSContext* cx, JS::CompartmentOptions& options,
if (!DefineOS(cx, glob, fuzzingSafe, &gOutFile, &gErrFile))
return nullptr;
+#ifdef MOZ_DEVTOOLS_SERVER
RootedObject performanceObj(cx, JS_NewObject(cx, nullptr));
if (!performanceObj)
return nullptr;
@@ -7105,6 +7106,7 @@ NewGlobalObject(JSContext* cx, JS::CompartmentOptions& options,
return nullptr;
if (!JS_DefineProperty(cx, mozMemoryObj, "gc", gcObj, JSPROP_ENUMERATE))
return nullptr;
+#endif
/* Initialize FakeDOMObject. */
static const js::DOMCallbacks DOMcallbacks = {