Bug 1150714 - Fix streaming tracked optimizations for functions that don't have a displayAtom. (r=djvj)

This commit is contained in:
Shu-yu Guo 2015-04-06 18:38:31 -07:00
parent f1b9a9dacc
commit 7f4efc338e
2 changed files with 8 additions and 5 deletions

View File

@ -1213,11 +1213,14 @@ IonTrackedOptimizationsTypeInfo::ForEachOpAdapter::readType(const IonTrackedType
return;
}
PutEscapedString(buf, bufsize, fun->displayAtom(), 0);
if (fun->displayAtom())
PutEscapedString(buf, bufsize, fun->displayAtom(), 0);
const char* filename;
unsigned lineno;
InterpretedFunctionFilenameAndLineNumber(fun, &filename, &lineno);
op_.readType(tracked.constructor ? "constructor" : "function", buf, filename, lineno);
op_.readType(tracked.constructor ? "constructor" : "function",
fun->displayAtom() ? buf : nullptr,
filename, lineno);
return;
}

View File

@ -231,8 +231,8 @@ public:
, mStartedTypeList(false)
{ }
void readType(const char *keyedBy, const char *name,
const char *location, unsigned lineno) override {
void readType(const char* keyedBy, const char* name,
const char* location, unsigned lineno) override {
if (!mStartedTypeList) {
mStartedTypeList = true;
mWriter.BeginObject();
@ -254,7 +254,7 @@ public:
mWriter.EndObject();
}
void operator()(JS::TrackedTypeSite site, const char *mirType) override {
void operator()(JS::TrackedTypeSite site, const char* mirType) override {
if (mStartedTypeList) {
mWriter.EndArray();
mStartedTypeList = false;