]> git.kaiwu.me - quickjs.git/commitdiff
avoid dereferencing the iterator twice in js_append_enumerate()
authorFabrice Bellard <fabrice@bellard.org>
Sat, 7 Nov 2026 13:25:12 +0000 (14:25 +0100)
committerFabrice Bellard <fabrice@bellard.org>
Sat, 7 Nov 2026 13:25:12 +0000 (14:25 +0100)
quickjs.c

index a15818e70cfe94ca643fdb05c21b3cfc37efc432..737cfebc2aa455ba20025face15fc8f90cfd553c 100644 (file)
--- a/quickjs.c
+++ b/quickjs.c
@@ -17317,9 +17317,9 @@ static __exception int js_append_enumerate(JSContext *ctx, JSValue *sp)
     ft.generic_magic = js_create_array_iterator;
     is_array_iterator = JS_IsCFunction(ctx, iterator, ft.generic,
                                        JS_ITERATOR_KIND_VALUE);
-    JS_FreeValue(ctx, iterator);
 
-    enumobj = JS_GetIterator(ctx, sp[-1], FALSE);
+    enumobj = JS_GetIterator2(ctx, sp[-1], iterator);
+    JS_FreeValue(ctx, iterator);
     if (JS_IsException(enumobj))
         return -1;
     method = JS_GetProperty(ctx, enumobj, JS_ATOM_next);