Bug 1315839: Add null-check in wasmExtractCode; r=luke

MozReview-Commit-ID: GIyAn5TLwhC

--HG--
extra : rebase_source : f657d648297d155233074a1a498d4772efd97ed3
extra : amend_source : aa829eb70a9674188f5f038e4306d7c8db4a18ba
This commit is contained in:
Benjamin Bouvier 2016-11-08 10:06:26 +01:00
Родитель 367ecab382
Коммит c9c326cdc0
1 изменённых файлов: 17 добавлений и 8 удалений

Просмотреть файл

@ -526,28 +526,37 @@ Module::extractCode(JSContext* cx, MutableHandleValue vp)
if (!segments)
return false;
for (auto p = metadata_->codeRanges.begin(); p != metadata_->codeRanges.end(); p++) {
for (const CodeRange& p : metadata_->codeRanges) {
RootedObject segment(cx, NewObjectWithGivenProto<PlainObject>(cx, nullptr));
value.setNumber((uint32_t)p->begin());
if (!segment)
return false;
value.setNumber((uint32_t)p.begin());
if (!JS_DefineProperty(cx, segment, "begin", value, JSPROP_ENUMERATE))
return false;
value.setNumber((uint32_t)p->end());
value.setNumber((uint32_t)p.end());
if (!JS_DefineProperty(cx, segment, "end", value, JSPROP_ENUMERATE))
return false;
value.setNumber((uint32_t)p->kind());
value.setNumber((uint32_t)p.kind());
if (!JS_DefineProperty(cx, segment, "kind", value, JSPROP_ENUMERATE))
return false;
if (p->isFunction()) {
value.setNumber((uint32_t)p->funcIndex());
if (p.isFunction()) {
value.setNumber((uint32_t)p.funcIndex());
if (!JS_DefineProperty(cx, segment, "funcIndex", value, JSPROP_ENUMERATE))
return false;
value.setNumber((uint32_t)p->funcNonProfilingEntry());
value.setNumber((uint32_t)p.funcNonProfilingEntry());
if (!JS_DefineProperty(cx, segment, "funcBodyBegin", value, JSPROP_ENUMERATE))
return false;
value.setNumber((uint32_t)p->funcProfilingEpilogue());
value.setNumber((uint32_t)p.funcProfilingEpilogue());
if (!JS_DefineProperty(cx, segment, "funcBodyEnd", value, JSPROP_ENUMERATE))
return false;
}
if (!NewbornArrayPush(cx, segments, ObjectValue(*segment)))
return false;
}