summaryrefslogtreecommitdiff
path: root/instance_table.c
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2020-02-14 12:14:53 -0500
committerLeo Tenenbaum <pommicket@gmail.com>2020-02-14 12:14:53 -0500
commit41ba175c4bcfac35bf55d569a3d06198465ae33e (patch)
treef8d2797a1eff55076d4f499cdee4a9643c442211 /instance_table.c
parentae45eba904bd5fd1008e19630eaf1d384c597545 (diff)
minor improvements and preparing for struct arguments
Diffstat (limited to 'instance_table.c')
-rw-r--r--instance_table.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/instance_table.c b/instance_table.c
index 0f8948a..85a2abc 100644
--- a/instance_table.c
+++ b/instance_table.c
@@ -109,7 +109,7 @@ static U64 type_hash(Type *t) {
hash += type_hash(t->slice) * 0x67a571620f9a5d6a + 0xc3f91e92c844ab1f;
return hash;
case TYPE_STRUCT:
- hash += (U64)t->struc;
+ hash += (U64)t->struc.def;
return hash;
case TYPE_ARR:
hash += type_hash(t->arr.of) * 0x3b6256104800a414 + 0xa901e68bbd8968a1
@@ -183,7 +183,7 @@ static U64 val_ptr_hash(void *v, Type *t) {
case TYPE_STRUCT: {
U32 x = 1;
U64 hash = 0;
- arr_foreach(t->struc->fields, Field, f) {
+ arr_foreach(t->struc.def->fields, Field, f) {
hash += (U64)x * val_ptr_hash((char *)v + f->offset, &f->type);
x = rand_u32(x);
}
@@ -265,7 +265,7 @@ static bool val_ptr_eq(void *u, void *v, Type *t) {
return true;
}
case TYPE_STRUCT:
- arr_foreach(t->struc->fields, Field, f) {
+ arr_foreach(t->struc.def->fields, Field, f) {
if (!val_ptr_eq((char *)u + f->offset, (char *)v + f->offset, &f->type))
return false;
}