Bug 1377007 - GC for binjs-ref parser;r=sfink

MozReview-Commit-ID: EjZZ1ofm52t

--HG--
extra : rebase_source : f45fc9709f0c2d18baccdc27cba3476b7a610b61
This commit is contained in:
David Teller 2017-09-05 14:51:30 +02:00
parent a848a751c3
commit 6cbd331d9e
3 changed files with 14 additions and 0 deletions

View File

@ -867,6 +867,9 @@ class JS_PUBLIC_API(AutoGCRooter)
enum {
VALARRAY = -2, /* js::AutoValueArray */
PARSER = -3, /* js::frontend::Parser */
#if defined(JS_BUILD_BINAST)
BINPARSER = -4, /* js::frontend::BinSource */
#endif // defined(JS_BUILD_BINAST)
VALVECTOR = -10, /* js::AutoValueVector */
IDVECTOR = -11, /* js::AutoIdVector */
OBJVECTOR = -14, /* js::AutoObjectVector */

View File

@ -124,6 +124,11 @@ IsKeyword(JSLinearString* str);
void
TraceParser(JSTracer* trc, JS::AutoGCRooter* parser);
/* Trace all GC things reachable from binjs parser. Defined in BinSource.cpp. */
void
TraceBinParser(JSTracer* trc, JS::AutoGCRooter* parser);
class MOZ_STACK_CLASS AutoFrontendTraceLog
{
#ifdef JS_TRACE_LOGGING

View File

@ -153,6 +153,12 @@ AutoGCRooter::trace(JSTracer* trc)
frontend::TraceParser(trc, this);
return;
#if defined(JS_BUILD_BINAST)
case BINPARSER:
frontend::TraceBinParser(trc, this);
return;
#endif // defined(JS_BUILD_BINAST)
case VALARRAY: {
/*
* We don't know the template size parameter, but we can safely treat it