diff --git a/datastream.c b/datastream.c index 1cb327d6..c96ceece 100644 --- a/datastream.c +++ b/datastream.c @@ -84,9 +84,11 @@ static void render_frame(plm_t *mpeg, plm_frame_t *frame, void *d) { JS_ROOT(surfData, JS_NewObject(ds->js)); JS_SetPropertyStr(ds->js, surfData.val, "width", JS_NewInt32(ds->js, frame->width)); JS_SetPropertyStr(ds->js, surfData.val, "height", JS_NewInt32(ds->js, frame->height)); - JS_SetPropertyStr(ds->js, surfData.val, "format", JS_NewString(ds->js, "rgba32")); + JSValue tmp = JS_NewString(ds->js, "rgba32"); + JS_SetPropertyStr(ds->js, surfData.val, "format", tmp); JS_SetPropertyStr(ds->js, surfData.val, "pitch", JS_NewInt32(ds->js, frame->width*4)); - JS_SetPropertyStr(ds->js, surfData.val, "pixels", js_new_blob_stoned_copy(ds->js, rgb, frame->height*frame->width*4)); + tmp = js_new_blob_stoned_copy(ds->js, rgb, frame->height*frame->width*4); + JS_SetPropertyStr(ds->js, surfData.val, "pixels", tmp); JSValue s[1]; s[0] = surfData.val; diff --git a/geometry.c b/geometry.c index d72def22..70677972 100644 --- a/geometry.c +++ b/geometry.c @@ -280,13 +280,17 @@ JSValue quads_to_mesh(JSContext *js, text_vert *buffer) JS_FRAME(js); JS_ROOT(ret, JS_NewObject(js)); - JS_SetPropertyStr(js, ret.val, "xy", js_new_blob_stoned_copy(js, xy_data, xy_size)); + JSValue tmp = js_new_blob_stoned_copy(js, xy_data, xy_size); + JS_SetPropertyStr(js, ret.val, "xy", tmp); JS_SetPropertyStr(js, ret.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, ret.val, "uv", js_new_blob_stoned_copy(js, uv_data, uv_size)); + tmp = js_new_blob_stoned_copy(js, uv_data, uv_size); + JS_SetPropertyStr(js, ret.val, "uv", tmp); JS_SetPropertyStr(js, ret.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, ret.val, "color", js_new_blob_stoned_copy(js, color_data, color_size)); + tmp = js_new_blob_stoned_copy(js, color_data, color_size); + JS_SetPropertyStr(js, ret.val, "color", tmp); JS_SetPropertyStr(js, ret.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor))); - JS_SetPropertyStr(js, ret.val, "indices", js_new_blob_stoned_copy(js, indices, sizeof(uint16_t)*count)); + tmp = js_new_blob_stoned_copy(js, indices, sizeof(uint16_t)*count); + JS_SetPropertyStr(js, ret.val, "indices", tmp); JS_SetPropertyStr(js, ret.val, "num_vertices", JS_NewInt32(js, verts)); JS_SetPropertyStr(js, ret.val, "num_indices", JS_NewInt32(js, count)); JS_SetPropertyStr(js, ret.val, "size_indices", JS_NewInt32(js, 2)); // uint16_t size @@ -711,18 +715,22 @@ JSC_CCALL(geometry_tilemap_to_data, } } } - + // Create result object with blob data JS_FRAME(js); JS_ROOT(result, JS_NewObject(js)); - JS_SetPropertyStr(js, result.val, "xy", js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float))); + JSValue tmp = js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float)); + JS_SetPropertyStr(js, result.val, "xy", tmp); JS_SetPropertyStr(js, result.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, result.val, "uv", js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float))); + tmp = js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float)); + JS_SetPropertyStr(js, result.val, "uv", tmp); JS_SetPropertyStr(js, result.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, result.val, "color", js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor))); + tmp = js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor)); + JS_SetPropertyStr(js, result.val, "color", tmp); JS_SetPropertyStr(js, result.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor))); - JS_SetPropertyStr(js, result.val, "indices", js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t))); + tmp = js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t)); + JS_SetPropertyStr(js, result.val, "indices", tmp); JS_SetPropertyStr(js, result.val, "num_vertices", JS_NewInt32(js, vertex_count)); JS_SetPropertyStr(js, result.val, "num_indices", JS_NewInt32(js, index_count)); JS_SetPropertyStr(js, result.val, "size_indices", JS_NewInt32(js, 2)); // using uint16_t @@ -923,17 +931,21 @@ JSC_CCALL(geometry_sprites_to_data, vertex_idx += 4; } - + // Create result object with blob data JS_FRAME(js); JS_ROOT(result, JS_NewObject(js)); - JS_SetPropertyStr(js, result.val, "xy", js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float))); + JSValue tmp = js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float)); + JS_SetPropertyStr(js, result.val, "xy", tmp); JS_SetPropertyStr(js, result.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, result.val, "uv", js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float))); + tmp = js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float)); + JS_SetPropertyStr(js, result.val, "uv", tmp); JS_SetPropertyStr(js, result.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, result.val, "color", js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor))); + tmp = js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor)); + JS_SetPropertyStr(js, result.val, "color", tmp); JS_SetPropertyStr(js, result.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor))); - JS_SetPropertyStr(js, result.val, "indices", js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t))); + tmp = js_new_blob_stoned_copy(js, index_data, index_count * sizeof(uint16_t)); + JS_SetPropertyStr(js, result.val, "indices", tmp); JS_SetPropertyStr(js, result.val, "num_vertices", JS_NewInt32(js, vertex_count)); JS_SetPropertyStr(js, result.val, "num_indices", JS_NewInt32(js, index_count)); JS_SetPropertyStr(js, result.val, "size_indices", JS_NewInt32(js, 2)); // using uint16_t @@ -1104,11 +1116,14 @@ JSC_CCALL(geometry_make_rect_quad, // Create result object JS_FRAME(js); JS_ROOT(result, JS_NewObject(js)); - JS_SetPropertyStr(js, result.val, "xy", js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float))); + JSValue tmp = js_new_blob_stoned_copy(js, xy_data, vertex_count * 2 * sizeof(float)); + JS_SetPropertyStr(js, result.val, "xy", tmp); JS_SetPropertyStr(js, result.val, "xy_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, result.val, "uv", js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float))); + tmp = js_new_blob_stoned_copy(js, uv_data, vertex_count * 2 * sizeof(float)); + JS_SetPropertyStr(js, result.val, "uv", tmp); JS_SetPropertyStr(js, result.val, "uv_stride", JS_NewInt32(js, 2 * sizeof(float))); - JS_SetPropertyStr(js, result.val, "color", js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor))); + tmp = js_new_blob_stoned_copy(js, color_data, vertex_count * sizeof(SDL_FColor)); + JS_SetPropertyStr(js, result.val, "color", tmp); JS_SetPropertyStr(js, result.val, "color_stride", JS_NewInt32(js, sizeof(SDL_FColor))); JS_SetPropertyStr(js, result.val, "num_vertices", JS_NewInt32(js, vertex_count)); JS_RestoreFrame(_js_ctx, _js_gc_frame, _js_local_frame); diff --git a/staef.c b/staef.c index b101a445..f56fb780 100644 --- a/staef.c +++ b/staef.c @@ -858,13 +858,16 @@ CELL_USE_INIT( JS_ROOT(mod, JS_NewObject(js)); // Create font constructor (legacy) - JS_SetPropertyStr(js, mod.val, "font", JS_NewCFunction2(js, js_font_constructor, "font", 2, JS_CFUNC_generic, 0)); + JSValue fn = JS_NewCFunction2(js, js_font_constructor, "font", 2, JS_CFUNC_generic, 0); + JS_SetPropertyStr(js, mod.val, "font", fn); // Create SDF font constructor: sdf_font(data, em_px, range_px, padding_px, sharpness) - JS_SetPropertyStr(js, mod.val, "sdf_font", JS_NewCFunction2(js, js_sdf_font_constructor, "sdf_font", 5, JS_CFUNC_generic, 0)); + fn = JS_NewCFunction2(js, js_sdf_font_constructor, "sdf_font", 5, JS_CFUNC_generic, 0); + JS_SetPropertyStr(js, mod.val, "sdf_font", fn); // Create MSDF font constructor: msdf_font(data, em_px, range_px, padding_px, sharpness) - JS_SetPropertyStr(js, mod.val, "msdf_font", JS_NewCFunction2(js, js_msdf_font_constructor, "msdf_font", 5, JS_CFUNC_generic, 0)); + fn = JS_NewCFunction2(js, js_msdf_font_constructor, "msdf_font", 5, JS_CFUNC_generic, 0); + JS_SetPropertyStr(js, mod.val, "msdf_font", fn); JS_RETURN(mod.val); )