aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2024-12-06 14:21:01 +0000
committerGitHub <noreply@github.com>2024-12-06 14:21:01 +0000
commite4bdc4ff7c5901960a7d409e4c9783a09b005ae2 (patch)
tree9aaa571e3498a8106ada0622579ac7a1a53dbd35
parent62768ad857f09b2ec10e2132b2a2a3ac6c8dc1bc (diff)
parent37fb2754a1d98cd3b8738717183543924c66524b (diff)
Merge pull request #4562 from dozn/patch-1
Move Struct Field Zipping Outside of Loop
-rw-r--r--core/encoding/json/unmarshal.odin6
1 files changed, 3 insertions, 3 deletions
diff --git a/core/encoding/json/unmarshal.odin b/core/encoding/json/unmarshal.odin
index 447397de4..33fd104b7 100644
--- a/core/encoding/json/unmarshal.odin
+++ b/core/encoding/json/unmarshal.odin
@@ -417,15 +417,15 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm
if .raw_union in t.flags {
return UNSUPPORTED_TYPE
}
-
+
+ fields := reflect.struct_fields_zipped(ti.id)
+
struct_loop: for p.curr_token.kind != end_token {
key := parse_object_key(p, p.allocator) or_return
defer delete(key, p.allocator)
unmarshal_expect_token(p, .Colon)
- fields := reflect.struct_fields_zipped(ti.id)
-
field_test :: #force_inline proc "contextless" (field_used: [^]byte, offset: uintptr) -> bool {
prev_set := field_used[offset/8] & byte(offset&7) != 0
field_used[offset/8] |= byte(offset&7)