]> Nishi Git Mirror - gwion.git/commitdiff
:bug: Check array contains object before emitting null check
authorJérémie Astor <fennecdjay@gmail.com>
Mon, 6 Sep 2021 14:48:10 +0000 (16:48 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Mon, 6 Sep 2021 14:48:10 +0000 (16:48 +0200)
src/lib/array.c

index 0bd3558b6c8ed64ec92b1409a5b9b9de5e219674..954a9db520488260f69a89177a5c725ccd8a9b5b 100644 (file)
@@ -324,8 +324,7 @@ ANN static void array_loop(const Emitter emit, const m_uint depth) {
 ANN static void array_finish(const Emitter emit, const m_uint depth,
                              const Type t, const m_bool is_var) {
   const Instr get = emit_add_instr(emit, is_var ? ArrayAddr : ArrayGet);
-  // determine if we have an object here
-  if(!is_var) {
+  if(!is_var && isa(t, emit->gwion->type[et_object]) > 0) {
     const m_uint _depth = get_depth(t);
     if(_depth < depth || isa(array_base(t), emit->gwion->type[et_object]) > 0)
       emit_add_instr(emit, GWOP_EXCEPT);