]> Nishi Git Mirror - gwion.git/commitdiff
:bug: Fix soprk stack
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Tue, 26 May 2020 19:07:03 +0000 (21:07 +0200)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Tue, 26 May 2020 19:07:03 +0000 (21:07 +0200)
src/emit/emit.c

index db22c5194be7ae8fd9b493bb72eb54bba94ce47c..c42789ef45bafe71f14505790c77452f629ec9e5 100644 (file)
@@ -1152,12 +1152,13 @@ ANN static m_bool spork_prepare_code(const Emitter emit, const struct Sporker *s
 }
 
 ANN static m_bool spork_prepare_func(const Emitter emit, const struct Sporker *sp) {
-  CHECK_BB(prepare_call(emit, &sp->exp->d.exp_call))
   push_spork_code(emit, sp->is_spork ? SPORK_FUNC_PREFIX : FORK_CODE_PREFIX, sp->exp->pos);
   return call_spork_func(emit, &sp->exp->d.exp_call);
 }
 
 ANN static VM_Code spork_prepare(const Emitter emit, const struct Sporker *sp) {
+  if(!sp->code)
+    CHECK_BO(prepare_call(emit, &sp->exp->d.exp_call))
   if((sp->code ? spork_prepare_code : spork_prepare_func)(emit, sp) > 0)
     return finalyze(emit, EOC);
   emit_pop_code(emit);