aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-12-09 12:47:59 +0000
committergingerBill <gingerBill@users.noreply.github.com>2025-12-09 12:47:59 +0000
commita3f189e8969221899ffef8a58e4f5068bf33d092 (patch)
tree9403391af1fbfbf610b54df68013dac0f9750042 /src
parent79ef9f0a434225102cdac338372968f282fbc2a3 (diff)
parentc0e4d2ea0513189f526ca777ecb0216180b3798f (diff)
Merge branch 'master' of https://github.com/odin-lang/Odin
Diffstat (limited to 'src')
-rw-r--r--src/types.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/types.cpp b/src/types.cpp
index eb20b8edf..18e3b56ac 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -4278,6 +4278,9 @@ gb_internal i64 *type_set_offsets_of(Slice<Entity *> const &fields, bool is_pack
gb_internal bool type_set_offsets(Type *t) {
t = base_type(t);
if (t->kind == Type_Struct) {
+ if (t->Struct.are_offsets_being_processed.load()) {
+ return true;
+ }
MUTEX_GUARD(&t->Struct.offset_mutex);
if (!t->Struct.are_offsets_set) {
t->Struct.are_offsets_being_processed.store(true);