summaryrefslogtreecommitdiff
path: root/instance_table.c
diff options
context:
space:
mode:
Diffstat (limited to 'instance_table.c')
-rw-r--r--instance_table.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/instance_table.c b/instance_table.c
index 948e4e5..63879ce 100644
--- a/instance_table.c
+++ b/instance_table.c
@@ -97,7 +97,9 @@ static U64 val_ptr_hash(void *v, Type *t) {
}
case TYPE_PTR: return (U64)*(void **)v;
case TYPE_TYPE: return (U64)*(Type **)v;
- case TYPE_USER: return val_ptr_hash(v, type_inner(t));
+ case TYPE_USER:
+ case TYPE_CALL:
+ return val_ptr_hash(v, type_inner(t));
case TYPE_ARR: {
U32 x = 1;
U64 hash = 0;
@@ -162,6 +164,7 @@ static bool val_ptr_eq(void *u, void *v, Type *t) {
case TYPE_FN:
return *(FnExpr **)u == *(FnExpr **)v;
case TYPE_USER:
+ case TYPE_CALL:
return val_ptr_eq(u, v, type_inner(t));
case TYPE_PTR:
return *(void **)u == *(void **)v;