]> Nishi Git Mirror - gwion.git/commitdiff
:bug: fix enum gack
authorfennecdjay <fennecdjay@gmail.com>
Fri, 28 Apr 2023 07:58:54 +0000 (09:58 +0200)
committerfennecdjay <fennecdjay@gmail.com>
Fri, 28 Apr 2023 07:58:54 +0000 (09:58 +0200)
src/lib/enum.c

index dda25b0db38cabc2435406e298bd011d3808cc38..fd1a8383b22708821028599cc4d8983869ea4ec1 100644 (file)
 static GACK(gack_enum) {
   const Map m = &t->nspc->info->value->map;
   const m_uint value = *(m_uint*)VALUE;
-  if(value < map_size(m)) {
-    const Value v = (Value)map_at(&t->nspc->info->value->map, *(m_uint*)VALUE);
-    INTERP_PRINTF("%s", v->name);
-  } else
-    INTERP_PRINTF("%s", t->name);
+  for(m_uint i = 0; i < map_size(m); i++) {
+    const Value v = (Value)map_at(&t->nspc->info->value->map, i);
+    if((m_uint)v->d.ptr == value) {
+      INTERP_PRINTF("%s", v->name);
+      return;
+    }
+  }
+  INTERP_PRINTF("%s", t->name);
 }
 
 GWION_IMPORT(enum) {