aboutsummaryrefslogtreecommitdiff
path: root/enums.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-03-08 14:33:54 -0500
committerBruce Hill <bruce@bruce-hill.com>2024-03-08 14:33:54 -0500
commit8427037bb91638b57f0f805cdf1581402cb0f335 (patch)
tree4ef8085974649efd4c0f8a430c2467a0be01e496 /enums.c
parent55eacb8a045fe6ae0f048fe3b4247098a49da2b9 (diff)
Refactor table methods to take table structs where possible
Diffstat (limited to 'enums.c')
-rw-r--r--enums.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/enums.c b/enums.c
index b12559e4..3e4a5864 100644
--- a/enums.c
+++ b/enums.c
@@ -49,7 +49,7 @@ static CORD compile_compare_method(env_t *env, ast_t *ast)
"if (diff) return diff;\n"
"switch (x->$tag) {\n");
for (tag_ast_t *tag = def->tags; tag; tag = tag->next) {
- type_t *tag_type = Table_str_get(env->types, heap_strf("%s$%s", def->name, tag->name));
+ type_t *tag_type = Table_str_get(*env->types, heap_strf("%s$%s", def->name, tag->name));
cmp_func = CORD_all(cmp_func, "\tcase $tag$", def->name, "$", tag->name, ": "
"return generic_compare(&x->", tag->name, ", &y->", tag->name, ", ", compile_type_info(env, tag_type), ");\n");
}
@@ -66,7 +66,7 @@ static CORD compile_equals_method(env_t *env, ast_t *ast)
"if (x->$tag != y->$tag) return no;\n"
"switch (x->$tag) {\n");
for (tag_ast_t *tag = def->tags; tag; tag = tag->next) {
- type_t *tag_type = Table_str_get(env->types, heap_strf("%s$%s", def->name, tag->name));
+ type_t *tag_type = Table_str_get(*env->types, heap_strf("%s$%s", def->name, tag->name));
eq_func = CORD_all(eq_func, "\tcase $tag$", def->name, "$", tag->name, ": "
"return generic_equal(&x->", tag->name, ", &y->", tag->name, ", ", compile_type_info(env, tag_type), ");\n");
}
@@ -82,7 +82,7 @@ static CORD compile_hash_method(env_t *env, ast_t *ast)
"uint32_t hashes[2] = {(uint32_t)obj->$tag};\n"
"switch (obj->$tag) {\n");
for (tag_ast_t *tag = def->tags; tag; tag = tag->next) {
- type_t *tag_type = Table_str_get(env->types, heap_strf("%s$%s", def->name, tag->name));
+ type_t *tag_type = Table_str_get(*env->types, heap_strf("%s$%s", def->name, tag->name));
hash_func = CORD_all(hash_func, "\tcase $tag$", def->name, "$", tag->name, ": "
"hashes[1] = generic_hash(&obj->", tag->name, ", ", compile_type_info(env, tag_type), ");\n"
"break;\n");
@@ -135,7 +135,7 @@ void compile_enum_def(env_t *env, ast_t *ast)
enum_def = CORD_cat(enum_def, "};\n};\n");
env->code->typecode = CORD_cat(env->code->typecode, enum_def);
- type_t *t = Table_str_get(env->types, def->name);
+ type_t *t = Table_str_get(*env->types, def->name);
CORD typeinfo = CORD_asprintf("public const TypeInfo %s = {%zu, %zu, {.tag=CustomInfo, .CustomInfo={",
def->name, type_size(t), type_align(t));