summaryrefslogtreecommitdiffstats
path: root/tests/sock-common.tl
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-07-05 21:00:55 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-07-05 21:00:55 -0700
commit71758d6cd1093981c410b19b57fb11c0d2b2ff8a (patch)
tree9bd175f1a4d06dc65162ee2c03eb9b4429ac3c76 /tests/sock-common.tl
parent3451e42d24f8ba117deeb3e44d6db6aefc78412a (diff)
downloadtxr-71758d6cd1093981c410b19b57fb11c0d2b2ff8a.tar.gz
txr-71758d6cd1093981c410b19b57fb11c0d2b2ff8a.tar.bz2
txr-71758d6cd1093981c410b19b57fb11c0d2b2ff8a.zip
structs: bugfix in static-slot-ensure.
* struct.c (static_sot_ens_rec): This change is in the case when a static slot is being ensured in a struct type which already has that static slot by inheritance. In that situation, the inheritance is severed and the struct gets its own non-inherited slot of that name. Then all of the derived structs are scanned. If any contain the original inherited slot, it is updated to the new, non-inherited one. The bug here is that we were copying the home_offs field of the original inherited slot to the new one! This is wrong; the new slot is not related to the original inherited one. The new slot is a home slot and its own offset must be home_offs. We can calculate that simply as its delta from the static slot table base.
Diffstat (limited to 'tests/sock-common.tl')
0 files changed, 0 insertions, 0 deletions