]> Nishi Git Mirror - gwion.git/commitdiff
:bug: Fix enum pp
authorfennecdjay <fennecdjay@gmail.com>
Sun, 3 Jul 2022 16:07:25 +0000 (18:07 +0200)
committerfennecdjay <fennecdjay@gmail.com>
Sun, 3 Jul 2022 16:07:25 +0000 (18:07 +0200)
src/parse/scan0.c

index ade9f79e9fa8544f91f8b9a0852a9b1512485527..ded15e62290be6d27a043e75ed70c1011c854533 100644 (file)
@@ -211,8 +211,13 @@ ANN m_bool scan0_type_def(const Env env, const Type_Def tdef) {
 
 #include "gack.h"
 static GACK(gack_enum) {
-  const Value v = (Value)map_at(&t->nspc->info->value->map, *(m_uint*)VALUE);
-  INTERP_PRINTF("%s", v->name);
+  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);
 }
 
 ANN static Type enum_type(const Env env, const Enum_Def edef) {