]> Nishi Git Mirror - gwion.git/commitdiff
:bug: fix enum (and add @hidden_enum)
authorJérémie Astor <fennecdjay@gmail.com>
Tue, 3 Aug 2021 20:31:44 +0000 (22:31 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Tue, 3 Aug 2021 20:31:44 +0000 (22:31 +0200)
include/import/edef.h
src/emit/emit.c
src/import/import_enum.c
src/lib/engine.c
src/lib/prim.c

index 48c13ff76427a598909b40efd7066a94612f4096..b458033b08c1276c8a5b51f3cf200258eeeef292 100644 (file)
@@ -1,7 +1,8 @@
 #ifndef __IMPORT_ENUM
 #define __IMPORT_ENUM
 
-ANN2(1) m_int gwi_enum_ini(const Gwi gwi, const m_str type);
+__attribute__ ((visibility ("default")))
+ANN m_int gwi_enum_ini(const Gwi gwi, const m_str type);
 ANN m_int gwi_enum_add(const Gwi gwi, const m_str name, const m_uint value);
 ANN Type  gwi_enum_end(const Gwi gwi);
 ANN void  ck_clean_edef(MemPool, ImportCK *);
index 3644477df1395e99b484b08b493f10ca3ab78e92..bfd6fb879c38db90c7e5d72bc610e6ebfa7305d2 100644 (file)
@@ -2210,7 +2210,7 @@ ANN static m_bool emit_type_def(const Emitter emit, const Type_Def tdef) {
              : GW_OK;
 }
 
-ANN static m_bool emit_enum_def(const Emitter emit, const Enum_Def edef) {
+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);
index 02f8f79b7e8db7964f19f8118eca6b4a22e39129..c47ca50a843f161a625b907a07cbfb9b9bffc5ca 100644 (file)
 //! \arg the importer
 //! \arg string defining a primitive type
 //! why is return type m_int ?
-ANN2(1) m_int gwi_enum_ini(const Gwi gwi, const m_str type) {
+
+__attribute__ ((visibility ("default")))
+ANN m_int gwi_enum_ini(const Gwi gwi, const m_str type) {
   CHECK_BB(ck_ini(gwi, ck_edef));
-  if (type) CHECK_OB((gwi->ck->xid = gwi_str2sym(gwi, type)));
+  CHECK_OB((gwi->ck->xid = gwi_str2sym(gwi, type)));
   vector_init(&gwi->ck->v);
   return GW_OK;
 }
index 3f6d8c2a126d082b6734674a6c1c72711e0822d9..9acbaba6a3256bedc80a8d6f11b19933d04e25e4 100644 (file)
@@ -224,6 +224,9 @@ ANN static m_bool import_core_libs(const Gwi gwi) {
   GWI_BB(gwi_oper_add(gwi, opck_class_call))
   GWI_BB(gwi_oper_end(gwi, "=>", NULL))
 
+gwi_enum_ini(gwi, "@hidden_enum");
+gwi_enum_add(gwi, "@hidden_enum", 0);
+gwi_enum_end(gwi);
   return GW_OK;
 }
 
index 7edefbb099618edd84937c4c5ca7811518bd5b9b..23ff6459bc274a6d0d5a27cf5f27b5bc8b507fd9 100644 (file)
@@ -255,9 +255,9 @@ static GWION_IMPORT(int_values) {
   GWI_BB(gwi_set_global_type(gwi, t_bool, et_bool))
   GWI_BB(gwi_gack(gwi, t_bool, gack_bool))
   gwi_item_ini(gwi, "bool", "true");
-  gwi_item_end(gwi, ae_flag_const, num, 0);
-  gwi_item_ini(gwi, "bool", "false");
   gwi_item_end(gwi, ae_flag_const, num, 1);
+  gwi_item_ini(gwi, "bool", "false");
+  gwi_item_end(gwi, ae_flag_const, num, 0);
   GWI_BB(gwi_oper_ini(gwi, NULL, "int", "bool"))
   GWI_BB(gwi_oper_add(gwi, opck_unary_meta))
   GWI_BB(gwi_oper_add(gwi, opck_int_not))