diff options
Diffstat (limited to 'instance_table.c')
-rw-r--r-- | instance_table.c | 5 |
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; |