Files
godot-mono-builds/files/patches/offsets-tool-duplicate-fields.diff
Rémi Verschelde 945d2619f8 CI: Bump actions, various fixes, update to Mono 6.12.0.206
- Update TuxFamily links for Linux SDKs.
- Downgrade CMake to v3 on macOS, it breaks building old LLVM.
- Fix conflict between LLVM `regex_impl.h` header guard and Xcode SDK.
- Pin `macos-13` as newer ones are arm64-based and our scripts don't seem
  to infer this properly.
- Patch Mono `offsets-tool.py` to support newer Clang (dotnet patches).
2025-10-12 12:14:33 +02:00

33 lines
1.4 KiB
Diff

Extracted from https://github.com/dotnet/runtime/commit/087651ee0c2e315f7fe1cbecab5f507af364ab5c
--
diff --git a/mono/tools/offsets-tool/offsets-tool.py b/mono/tools/offsets-tool/offsets-tool.py
index adf7eb4b..46214429 100644
--- a/mono/tools/offsets-tool/offsets-tool.py
+++ b/mono/tools/offsets-tool/offsets-tool.py
@@ -303,8 +303,11 @@ class OffsetsTool:
if type.size == -1:
continue
f.write ("DECL_SIZE2(%s,%s)\n" % (type.name, type.size))
+ done_fields = {}
for field in type.fields:
- f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset))
+ if field.name not in done_fields:
+ f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset))
+ done_fields [field.name] = field.name
f.write ("#endif //disable metadata check\n")
f.write ("#ifndef DISABLE_JIT_OFFSETS\n")
@@ -314,8 +317,11 @@ class OffsetsTool:
if type.size == -1:
continue
f.write ("DECL_SIZE2(%s,%s)\n" % (type.name, type.size))
+ done_fields = {}
for field in type.fields:
- f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset))
+ if field.name not in done_fields:
+ f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset))
+ done_fields [field.name] = field.name
f.write ("#endif //disable jit check\n")
f.write ("#endif //cross compiler checks\n")