]> Nishi Git Mirror - gwion.git/commitdiff
:art: emit.c exp_td security
authorfennecdjay <fennecdjay@gmail.com>
Sat, 19 Nov 2022 14:38:50 +0000 (15:38 +0100)
committerfennecdjay <fennecdjay@gmail.com>
Sat, 19 Nov 2022 14:38:50 +0000 (15:38 +0100)
src/emit/emit.c

index 66e27c685290896f075d22478c7d780e717fcbc6..e6d5069301a88366b8a31404f6e322de53ff0e85 100644 (file)
@@ -1926,7 +1926,12 @@ ANN static m_bool emit_exp_lambda(const Emitter     emit,
 
 ANN static m_bool emit_exp_td(const Emitter emit, Type_Decl *td) {
   const Type base = exp_self(td)->type;
-  emit_pushimm(emit, (m_uint)base);
+  if(!is_func(emit->gwion, base))
+    emit_pushimm(emit, (m_uint)base);
+  else {
+    const Instr instr = emit_add_instr(emit, SetFunc);
+    instr->m_val = (m_uint)base->info->func;
+  }
   return GW_OK;
 }