]> Nishi Git Mirror - gwion.git/commitdiff
:: enum
authorfennecdjay <fennecdjay@gmail.com>
Tue, 9 May 2023 08:40:56 +0000 (10:40 +0200)
committerfennecdjay <fennecdjay@gmail.com>
Tue, 9 May 2023 08:40:56 +0000 (10:40 +0200)
src/emit/emit.c
src/parse/check.c

index cda18b6c7fbce86b7ff49a3831b5b0a3cd598620..46a16e2bdce364ab100bfd1d24ef41c29f2c0e5c 100644 (file)
@@ -2371,7 +2371,8 @@ ANN static m_bool emit_enum_def(const Emitter emit NUSED, const Enum_Def edef) {
   LOOP_OPTIM
   for (m_uint i = 0; i < vector_size(&edef->values); ++i) {
     const Value v = (Value)vector_at(&edef->values, i);
-    *(m_uint *)(v->from->owner->class_data + v->from->offset) = i;
+    set_vflag(v, vflag_builtin);
+    v->d.num = i;
   }
   set_tflag(edef->type, tflag_emit);
   return GW_OK;
index b40704bc40e82b436f21c44ec80650c31c5dafd3..83460f6148c93ed21db15937853ad329b422321b 100644 (file)
@@ -1336,7 +1336,6 @@ ANN m_bool check_enum_def(const Env env, const Enum_Def edef) {
     decl_static(env, nspc_lookup_value0(env->curr, xid));
   }
   env_pop(env, scope);
-  nspc_allocdata(env->gwion->mp, edef->type->nspc);
   return GW_OK;
 }