txlyre пре 22 часа
родитељ
комит
b9820a4e80
1 измењених фајлова са 4 додато и 4 уклоњено
  1. 4 4
      qic.c

+ 4 - 4
qic.c

@@ -2731,17 +2731,17 @@ void compile_node(buffer_t *gbuf, buffer_t *buf, list_t *ctx, stack_t *lstk, lis
     break;
 
     case N_UNPACK: case N_VARUNPACK: case N_LETUNPACK: {
-      NEWGID();
+      char *varname = tempvar();
 
-      EMIT("qi_value_t *__temp%d = ", gid);
+      EMIT("qi_value_t *%s = ", varname);
       compile_node(gbuf, buf, ctx, lstk, lbl, node->a);
       EMIT(";\n");
 
       for (size_t i = 0; i < node->l->length; i++)
         if (node->tag == N_UNPACK) {
-          EMIT("qi_set(state, false, \"%s\", qi_index(state, __temp%d, qi_make_number(state, %d)));\n", node->l->data[i], gid, i);
+          EMIT("qi_set(state, false, \"%s\", qi_index(state, %s, qi_make_number(state, %d)));\n", node->l->data[i], varname, i);
         } else {
-          EMIT("%s(state, \"%s\", qi_index(state, __temp%d, qi_make_number(state, %d)));\n", node->tag == N_VARUNPACK? "qi_decl": "qi_decl_const", node->l->data[i], gid, i);
+          EMIT("%s(state, \"%s\", qi_index(state, %s, qi_make_number(state, %d)));\n", node->tag == N_VARUNPACK? "qi_decl": "qi_decl_const", node->l->data[i], varname, i);
         }
     } break;