bool JSCompartment::wrap(JSContext *cx, AutoIdVector &props) { jsid *vector = props.begin(); int length = props.length(); for (size_t n = 0; n < size_t(length); ++n) { if (!wrapId(cx, &vector[n])) return false; } return true; }
bool js::VectorToIdArray(JSContext* cx, AutoIdVector& props, JSIdArray** idap) { JS_STATIC_ASSERT(sizeof(JSIdArray) > sizeof(jsid)); size_t len = props.length(); size_t idsz = len * sizeof(jsid); size_t sz = (sizeof(JSIdArray) - sizeof(jsid)) + idsz; JSIdArray* ida = reinterpret_cast<JSIdArray*>(cx->zone()->pod_malloc<uint8_t>(sz)); if (!ida) return false; ida->length = static_cast<int>(len); jsid* v = props.begin(); for (int i = 0; i < ida->length; i++) ida->vector[i].init(v[i]); *idap = ida; return true; }