fix gc error
This commit is contained in:
31
video.c
31
video.c
@@ -749,7 +749,8 @@ JSValue js_window_state(JSContext *js, JSValue self, int argc, JSValue *argv)
|
||||
|
||||
// Title
|
||||
const char *title = SDL_GetWindowTitle(w);
|
||||
JS_SetPropertyStr(js, ret, "title", JS_NewString(js, title ? title : ""));
|
||||
JSValue _title = JS_NewString(js, title ? title : "");
|
||||
JS_SetPropertyStr(js, ret, "title", _title);
|
||||
|
||||
// Size
|
||||
int width, height;
|
||||
@@ -785,7 +786,8 @@ JSValue js_window_state(JSContext *js, JSValue self, int argc, JSValue *argv)
|
||||
|
||||
// Opacity
|
||||
float opacity = SDL_GetWindowOpacity(w);
|
||||
JS_SetPropertyStr(js, ret, "opacity", JS_NewFloat64(js, opacity));
|
||||
JSValue _opacity = JS_NewFloat64(js, opacity);
|
||||
JS_SetPropertyStr(js, ret, "opacity", _opacity);
|
||||
|
||||
// Grabs
|
||||
JS_SetPropertyStr(js, ret, "mouseGrab", JS_NewBool(js, SDL_GetWindowMouseGrab(w)));
|
||||
@@ -804,8 +806,10 @@ JSValue js_window_state(JSContext *js, JSValue self, int argc, JSValue *argv)
|
||||
JS_SetPropertyStr(js, ret, "maximized", JS_NewBool(js, flags & SDL_WINDOW_MAXIMIZED));
|
||||
|
||||
// Display properties
|
||||
JS_SetPropertyStr(js, ret, "displayScale", JS_NewFloat64(js, SDL_GetWindowDisplayScale(w)));
|
||||
JS_SetPropertyStr(js, ret, "pixelDensity", JS_NewFloat64(js, SDL_GetWindowPixelDensity(w)));
|
||||
JSValue _displayScale = JS_NewFloat64(js, SDL_GetWindowDisplayScale(w));
|
||||
JS_SetPropertyStr(js, ret, "displayScale", _displayScale);
|
||||
JSValue _pixelDensity = JS_NewFloat64(js, SDL_GetWindowPixelDensity(w));
|
||||
JS_SetPropertyStr(js, ret, "pixelDensity", _pixelDensity);
|
||||
|
||||
// Size in pixels
|
||||
int pixelW, pixelH;
|
||||
@@ -816,15 +820,17 @@ JSValue js_window_state(JSContext *js, JSValue self, int argc, JSValue *argv)
|
||||
JS_SetPropertyStr(js, ret, "sizeInPixels", pixelSizeObj);
|
||||
|
||||
// Flags
|
||||
JS_SetPropertyStr(js, ret, "flags", JS_NewInt64(js, flags));
|
||||
JSValue _flags = JS_NewInt64(js, flags);
|
||||
JS_SetPropertyStr(js, ret, "flags", _flags);
|
||||
|
||||
JS_SetPropertyStr(js, ret, "id", JS_NewUint32(js, SDL_GetWindowID(w)));
|
||||
|
||||
// Parent
|
||||
SDL_Window *parent = SDL_GetWindowParent(w);
|
||||
if (parent)
|
||||
JS_SetPropertyStr(js, ret, "parent", SDL_Window2js(js, parent));
|
||||
else
|
||||
if (parent) {
|
||||
JSValue _parent = SDL_Window2js(js, parent);
|
||||
JS_SetPropertyStr(js, ret, "parent", _parent);
|
||||
} else
|
||||
JS_SetPropertyStr(js, ret, "parent", JS_NULL);
|
||||
|
||||
JS_RETURN(ret);
|
||||
@@ -880,13 +886,16 @@ CELL_USE_INIT(
|
||||
JS_FRAME(js);
|
||||
JS_LOCAL(ret, JS_NewObject(js));
|
||||
|
||||
JS_SetPropertyStr(js, ret, "window", QJSCLASSPREP_FUNCS_CTOR(SDL_Window, 1));
|
||||
JSValue _window = QJSCLASSPREP_FUNCS_CTOR(SDL_Window, 1);
|
||||
JS_SetPropertyStr(js, ret, "window", _window);
|
||||
|
||||
QJSCLASSPREP_NO_FUNCS(SDL_Cursor);
|
||||
|
||||
// Add cursor functions
|
||||
JS_SetPropertyStr(js, ret, "createCursor", JS_NewCFunction(js, js_sdl_create_cursor, "createCursor", 2));
|
||||
JS_SetPropertyStr(js, ret, "setCursor", JS_NewCFunction(js, js_sdl_set_cursor, "setCursor", 1));
|
||||
JSValue _createCursor = JS_NewCFunction(js, js_sdl_create_cursor, "createCursor", 2);
|
||||
JS_SetPropertyStr(js, ret, "createCursor", _createCursor);
|
||||
JSValue _setCursor = JS_NewCFunction(js, js_sdl_set_cursor, "setCursor", 1);
|
||||
JS_SetPropertyStr(js, ret, "setCursor", _setCursor);
|
||||
|
||||
JS_RETURN(ret);
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user