aboutsummaryrefslogtreecommitdiff
path: root/core/encoding/json
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-08-02 11:55:16 +0100
committergingerBill <gingerBill@users.noreply.github.com>2025-08-02 11:55:16 +0100
commitae02d3d02d2eb5132fa7c6573ed7db20d7e18f3e (patch)
tree0f9f591df4a9862013ff79ef2e5ea3f8c050c393 /core/encoding/json
parent2561427dd396a69cd49eb02c0814c4e8e8b3a08f (diff)
Begin supporting `string16` across the core library
Diffstat (limited to 'core/encoding/json')
-rw-r--r--core/encoding/json/marshal.odin8
-rw-r--r--core/encoding/json/unmarshal.odin4
2 files changed, 7 insertions, 5 deletions
diff --git a/core/encoding/json/marshal.odin b/core/encoding/json/marshal.odin
index ebb9a639c..cdb00a354 100644
--- a/core/encoding/json/marshal.odin
+++ b/core/encoding/json/marshal.odin
@@ -353,10 +353,10 @@ marshal_to_writer :: proc(w: io.Writer, v: any, opt: ^Marshal_Options) -> (err:
#partial switch info in ti.variant {
case runtime.Type_Info_String:
switch x in v {
- case string:
- return x == ""
- case cstring:
- return x == nil || x == ""
+ case string: return x == ""
+ case cstring: return x == nil || x == ""
+ case string16: return x == ""
+ case cstring16: return x == nil || x == ""
}
case runtime.Type_Info_Any:
return v.(any) == nil
diff --git a/core/encoding/json/unmarshal.odin b/core/encoding/json/unmarshal.odin
index b9ed1476f..51e7e3b81 100644
--- a/core/encoding/json/unmarshal.odin
+++ b/core/encoding/json/unmarshal.odin
@@ -570,7 +570,9 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm
key_ptr: rawptr
#partial switch tk in t.key.variant {
- case runtime.Type_Info_String:
+ case runtime.Type_Info_String:
+ assert(!tk.is_utf16)
+
key_ptr = rawptr(&key)
key_cstr: cstring
if reflect.is_cstring(t.key) {