Changeset View
Changeset View
Standalone View
Standalone View
source/ps/ModIo.cpp
Show First 20 Lines • Show All 585 Lines • ▼ Show 20 Lines | if (!JS_GetProperty(cx, gameResponseObj, "data", &dataVal)) | ||||
FAIL("data property not in response."); | FAIL("data property not in response."); | ||||
// [{"id": 42, ...}, ...] | // [{"id": 42, ...}, ...] | ||||
if (!dataVal.isObject()) | if (!dataVal.isObject()) | ||||
FAIL("data property not an object."); | FAIL("data property not an object."); | ||||
JS::RootedObject data(cx, dataVal.toObjectOrNull()); | JS::RootedObject data(cx, dataVal.toObjectOrNull()); | ||||
u32 length; | u32 length; | ||||
if (!JS_IsArrayObject(cx, data) || !JS_GetArrayLength(cx, data, &length) || !length) | bool realArray; | ||||
if (!JS_IsArrayObject(cx, data, &realArray) || !JS_GetArrayLength(cx, data, &length) || !length) | |||||
FAIL("data property not an array with at least one element."); | FAIL("data property not an array with at least one element."); | ||||
// {"id": 42, ...} | // {"id": 42, ...} | ||||
JS::RootedValue first(cx); | JS::RootedValue first(cx); | ||||
if (!JS_GetElement(cx, data, 0, &first)) | if (!JS_GetElement(cx, data, 0, &first)) | ||||
FAIL("Couldn't get first element."); | FAIL("Couldn't get first element."); | ||||
if (!first.isObject()) | if (!first.isObject()) | ||||
FAIL("First element not an object."); | FAIL("First element not an object."); | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | if (!JS_GetProperty(cx, modResponseObj, "data", &dataVal)) | ||||
FAIL("data property not in response."); | FAIL("data property not in response."); | ||||
// [modobj1, modobj2, ... ] | // [modobj1, modobj2, ... ] | ||||
if (!dataVal.isObject()) | if (!dataVal.isObject()) | ||||
FAIL("data property not an object."); | FAIL("data property not an object."); | ||||
JS::RootedObject data(cx, dataVal.toObjectOrNull()); | JS::RootedObject data(cx, dataVal.toObjectOrNull()); | ||||
u32 length; | u32 length; | ||||
if (!JS_IsArrayObject(cx, data) || !JS_GetArrayLength(cx, data, &length) || !length) | bool realArray; | ||||
if (!JS_IsArrayObject(cx, data, &realArray) || !JS_GetArrayLength(cx, data, &length) || !length) | |||||
FAIL("data property not an array with at least one element."); | FAIL("data property not an array with at least one element."); | ||||
modData.clear(); | modData.clear(); | ||||
modData.reserve(length); | modData.reserve(length); | ||||
for (u32 i = 0; i < length; ++i) | for (u32 i = 0; i < length; ++i) | ||||
{ | { | ||||
JS::RootedValue el(cx); | JS::RootedValue el(cx); | ||||
▲ Show 20 Lines • Show All 149 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator