[gjs: 1/3] Check if STRV value is an object before toObject.



commit fe23f6f634e5f619745a97937953ee282c96d6ac
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 8059d0b6..1b7cbbdb 100644
--- a/gi/value.cpp
+++ b/gi/value.cpp
@@ -488,11 +488,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(),
@@ -519,6 +519,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]