Bug 1153959 - Use RAII to manage tracing details; r=jonco

This commit is contained in:
Terrence Cole
2015-04-10 13:33:56 -07:00
parent 6a2cf633af
commit 4d9465e2f8
15 changed files with 261 additions and 362 deletions

View File

@@ -404,20 +404,9 @@ NoteJSChild(JS::CallbackTracer* aTrc, JS::GCCellPtr aThing)
*/
if (AddToCCKind(aThing.kind())) {
if (MOZ_UNLIKELY(tracer->mCb.WantDebugInfo())) {
// based on DumpNotify in jsapi.cpp
if (tracer->debugPrinter()) {
char buffer[200];
tracer->debugPrinter()(aTrc, buffer, sizeof(buffer));
tracer->mCb.NoteNextEdgeName(buffer);
} else if (tracer->debugPrintIndex() != (size_t)-1) {
char buffer[200];
JS_snprintf(buffer, sizeof(buffer), "%s[%lu]",
static_cast<const char*>(tracer->debugPrintArg()),
tracer->debugPrintIndex());
tracer->mCb.NoteNextEdgeName(buffer);
} else {
tracer->mCb.NoteNextEdgeName(static_cast<const char*>(tracer->debugPrintArg()));
}
char buffer[200];
tracer->getTracingEdgeName(buffer, sizeof(buffer));
tracer->mCb.NoteNextEdgeName(buffer);
}
if (aThing.isObject()) {
tracer->mCb.NoteJSObject(aThing.toObject());