diff options
Diffstat (limited to 'media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch')
-rw-r--r-- | media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch b/media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch new file mode 100644 index 000000000000..2bb3a8d653e8 --- /dev/null +++ b/media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch @@ -0,0 +1,100 @@ +From 2a5f9c51f2f8dd29cd19a14f165ca2b425a172fc Mon Sep 17 00:00:00 2001 +From: George Kiagiadakis <george.kiagiadakis@collabora.com> +Date: Wed, 15 Sep 2021 12:51:47 +0300 +Subject: [PATCH 2/5] lua/api: fix object constructors to fail gracefully + +--- + modules/module-lua-scripting/api.c | 35 ++++++++++++++++++------------ + 1 file changed, 21 insertions(+), 14 deletions(-) + +diff --git a/modules/module-lua-scripting/api.c b/modules/module-lua-scripting/api.c +index 5691b63..2830477 100644 +--- a/modules/module-lua-scripting/api.c ++++ b/modules/module-lua-scripting/api.c +@@ -836,8 +836,9 @@ device_new (lua_State *L) + + WpDevice *d = wp_device_new_from_factory (get_wp_export_core (L), + factory, properties); +- wplua_pushobject (L, d); +- return 1; ++ if (d) ++ wplua_pushobject (L, d); ++ return d ? 1 : 0; + } + + /* WpSpaDevice */ +@@ -855,8 +856,9 @@ spa_device_new (lua_State *L) + + WpSpaDevice *d = wp_spa_device_new_from_spa_factory (get_wp_export_core (L), + factory, properties); +- wplua_pushobject (L, d); +- return 1; ++ if (d) ++ wplua_pushobject (L, d); ++ return d ? 1 : 0; + } + + static int +@@ -903,8 +905,9 @@ node_new (lua_State *L) + + WpNode *d = wp_node_new_from_factory (get_wp_export_core (L), + factory, properties); +- wplua_pushobject (L, d); +- return 1; ++ if (d) ++ wplua_pushobject (L, d); ++ return d ? 1 : 0; + } + + static int +@@ -1011,8 +1014,9 @@ impl_node_new (lua_State *L) + + WpImplNode *d = wp_impl_node_new_from_pw_factory (get_wp_export_core (L), + factory, properties); +- wplua_pushobject (L, d); +- return 1; ++ if (d) ++ wplua_pushobject (L, d); ++ return d ? 1 : 0; + } + + /* Port */ +@@ -1045,8 +1049,9 @@ link_new (lua_State *L) + } + + WpLink *l = wp_link_new_from_factory (get_wp_core (L), factory, properties); +- wplua_pushobject (L, l); +- return 1; ++ if (l) ++ wplua_pushobject (L, l); ++ return l ? 1 : 0; + } + + /* Client */ +@@ -1124,8 +1129,9 @@ session_item_new (lua_State *L) + { + const char *type = luaL_checkstring (L, 1); + WpSessionItem *si = wp_session_item_make (get_wp_core (L), type); +- wplua_pushobject (L, si); +- return 1; ++ if (si) ++ wplua_pushobject (L, si); ++ return si ? 1 : 0; + } + + static int +@@ -1135,8 +1141,9 @@ session_item_get_associated_proxy (lua_State *L) + const char *typestr = luaL_checkstring (L, 2); + WpProxy *proxy = wp_session_item_get_associated_proxy (si, + parse_gtype (typestr)); +- wplua_pushobject (L, proxy); +- return 1; ++ if (proxy) ++ wplua_pushobject (L, proxy); ++ return proxy ? 1 : 0; + } + + static int +-- +2.33.0 + |