aboutsummaryrefslogtreecommitdiff
path: root/core/encoding/json
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-07-14 21:37:35 +0100
committergingerBill <bill@gingerbill.org>2024-07-14 21:37:35 +0100
commit399c3ab067d0bbacbf9732107b932d5bb910b67f (patch)
tree1dde731a905e97dd355829ff453551125a17c9a3 /core/encoding/json
parente7d37607ef9ce54a80d83230150874b71d628d6d (diff)
Reduce the size of `runtime.Type_Info`
Diffstat (limited to 'core/encoding/json')
-rw-r--r--core/encoding/json/marshal.odin2
-rw-r--r--core/encoding/json/unmarshal.odin2
2 files changed, 2 insertions, 2 deletions
diff --git a/core/encoding/json/marshal.odin b/core/encoding/json/marshal.odin
index 30426f911..fa86d3468 100644
--- a/core/encoding/json/marshal.odin
+++ b/core/encoding/json/marshal.odin
@@ -406,7 +406,7 @@ marshal_to_writer :: proc(w: io.Writer, v: any, opt: ^Marshal_Options) -> (err:
ti := runtime.type_info_base(type_info_of(v.id))
info := ti.variant.(runtime.Type_Info_Struct)
first_iteration := true
- for name, i in info.names {
+ for name, i in info.names[:info.field_count] {
omitempty := false
json_name, extra := json_name_from_tag_value(reflect.struct_tag_get(reflect.Struct_Tag(info.tags[i]), "json"))
diff --git a/core/encoding/json/unmarshal.odin b/core/encoding/json/unmarshal.odin
index eb59e7838..344d2973e 100644
--- a/core/encoding/json/unmarshal.odin
+++ b/core/encoding/json/unmarshal.odin
@@ -368,7 +368,7 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm
#partial switch t in ti.variant {
case reflect.Type_Info_Struct:
- if t.is_raw_union {
+ if .raw_union in t.flags {
return UNSUPPORTED_TYPE
}