[gjs/gnome-3-34] Check if STRV value is an object before toObject.



commit 512043ee6772c9f7d9eb35f991faf63a4068fc31
Author: Evan Welsh <noreply evanwelsh com>
Date:   Mon Apr 20 14:01:37 2020 -0500

    Check if STRV value is an object before toObject.
    
    Fixes #315

 gi/value.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/gi/value.cpp b/gi/value.cpp
index a68f6059..b8163d2a 100644
--- a/gi/value.cpp
+++ b/gi/value.cpp
@@ -480,11 +480,11 @@ gjs_value_to_g_value_internal(JSContext      *context,
 
         g_value_set_object(gvalue, gobj);
     } else if (gtype == G_TYPE_STRV) {
-        bool found_length;
-
         if (value.isNull()) {
             /* do nothing */
-        } else {
+        } else if (value.isObject()) {
+            bool found_length;
+
             const GjsAtoms& atoms = GjsContextPrivate::atoms(context);
             JS::RootedObject array_obj(context, &value.toObject());
             if (JS_HasPropertyById(context, array_obj, atoms.length(),
@@ -511,6 +511,8 @@ gjs_value_to_g_value_internal(JSContext      *context,
             } else {
                 return throw_expect_type(context, value, "strv");
             }
+        } else {
+            return throw_expect_type(context, value, "strv");
         }
     } else if (g_type_is_a(gtype, G_TYPE_BOXED)) {
         void *gboxed;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]