return 1;
}
-static void js_free_prop_enum(JSContext *ctx, JSPropertyEnum *tab, uint32_t len)
+void JS_FreePropertyEnum(JSContext *ctx, JSPropertyEnum *tab, uint32_t len)
{
uint32_t i;
if (tab) {
/* set the "is_enumerable" field if necessary */
res = JS_GetOwnPropertyInternal(ctx, &desc, p, atom);
if (res < 0) {
- js_free_prop_enum(ctx, tab_exotic, exotic_count);
+ JS_FreePropertyEnum(ctx, tab_exotic, exotic_count);
return -1;
}
if (res) {
if (atom_count < exotic_keys_count || atom_count > INT32_MAX) {
add_overflow:
JS_ThrowOutOfMemory(ctx);
- js_free_prop_enum(ctx, tab_exotic, exotic_count);
+ JS_FreePropertyEnum(ctx, tab_exotic, exotic_count);
return -1;
}
/* XXX: need generic way to test for js_malloc(ctx, a * b) overflow */
/* avoid allocating 0 bytes */
tab_atom = js_malloc(ctx, sizeof(tab_atom[0]) * max_int(atom_count, 1));
if (!tab_atom) {
- js_free_prop_enum(ctx, tab_exotic, exotic_count);
+ JS_FreePropertyEnum(ctx, tab_exotic, exotic_count);
return -1;
}
for(i = 0; i < len; i++) {
tab_atom[num_index].atom = __JS_AtomFromUInt32(i);
if (tab_atom[num_index].atom == JS_ATOM_NULL) {
- js_free_prop_enum(ctx, tab_atom, num_index);
+ JS_FreePropertyEnum(ctx, tab_atom, num_index);
return -1;
}
tab_atom[num_index].is_enumerable = TRUE;
JS_FreeValue(ctx, obj1);
goto fail;
}
- js_free_prop_enum(ctx, tab_atom, tab_atom_count);
+ JS_FreePropertyEnum(ctx, tab_atom, tab_atom_count);
if (tab_atom_count != 0) {
JS_FreeValue(ctx, obj1);
goto slow_path;
JS_GPN_STRING_MASK | JS_GPN_SET_ENUM)) {
return -1;
}
- js_free_prop_enum(ctx, it->tab_atom, it->atom_count);
+ JS_FreePropertyEnum(ctx, it->tab_atom, it->atom_count);
it->tab_atom = tab_atom;
it->atom_count = tab_atom_count;
it->idx = 0;
if (ret < 0)
goto exception;
}
- js_free_prop_enum(ctx, tab_atom, tab_atom_count);
+ JS_FreePropertyEnum(ctx, tab_atom, tab_atom_count);
return 0;
exception:
- js_free_prop_enum(ctx, tab_atom, tab_atom_count);
+ JS_FreePropertyEnum(ctx, tab_atom, tab_atom_count);
return -1;
}
ret = 0;
exception:
- js_free_prop_enum(ctx, atoms, len);
+ JS_FreePropertyEnum(ctx, atoms, len);
JS_FreeValue(ctx, props);
JS_FreeValue(ctx, desc);
return ret;
goto exception;
}
}
- js_free_prop_enum(ctx, props, len);
+ JS_FreePropertyEnum(ctx, props, len);
JS_FreeValue(ctx, obj);
return r;
exception:
- js_free_prop_enum(ctx, props, len);
+ JS_FreePropertyEnum(ctx, props, len);
JS_FreeValue(ctx, obj);
JS_FreeValue(ctx, r);
return JS_EXCEPTION;
JS_FreeValue(ctx, r);
r = JS_EXCEPTION;
done:
- js_free_prop_enum(ctx, atoms, len);
+ JS_FreePropertyEnum(ctx, atoms, len);
JS_FreeValue(ctx, obj);
return r;
}
JS_UNDEFINED, JS_UNDEFINED, desc_flags) < 0)
goto exception;
}
- js_free_prop_enum(ctx, props, len);
+ JS_FreePropertyEnum(ctx, props, len);
return JS_DupValue(ctx, obj);
exception:
- js_free_prop_enum(ctx, props, len);
+ JS_FreePropertyEnum(ctx, props, len);
return JS_EXCEPTION;
}
return JS_EXCEPTION;
res ^= 1;
done:
- js_free_prop_enum(ctx, props, len);
+ JS_FreePropertyEnum(ctx, props, len);
return JS_NewBool(ctx, res);
exception:
- js_free_prop_enum(ctx, props, len);
+ JS_FreePropertyEnum(ctx, props, len);
return JS_EXCEPTION;
}
goto fail;
}
}
- js_free_prop_enum(ctx, atoms, len);
+ JS_FreePropertyEnum(ctx, atoms, len);
atoms = NULL;
name_val = JS_AtomToValue(ctx, name);
if (JS_IsException(name_val))
JS_FreeValue(ctx, val);
return res;
fail:
- js_free_prop_enum(ctx, atoms, len);
+ JS_FreePropertyEnum(ctx, atoms, len);
JS_FreeValue(ctx, val);
return JS_EXCEPTION;
}
}
}
- js_free_prop_enum(ctx, tab2, len2);
+ JS_FreePropertyEnum(ctx, tab2, len2);
JS_FreeValue(ctx, prop_array);
*ptab = tab;
*plen = len;
return 0;
fail:
- js_free_prop_enum(ctx, tab2, len2);
- js_free_prop_enum(ctx, tab, len);
+ JS_FreePropertyEnum(ctx, tab2, len2);
+ JS_FreePropertyEnum(ctx, tab, len);
JS_FreeValue(ctx, prop_array);
return -1;
}