aboutsummaryrefslogtreecommitdiff
path: root/core/encoding
diff options
context:
space:
mode:
Diffstat (limited to 'core/encoding')
-rw-r--r--core/encoding/cbor/tags.odin2
-rw-r--r--core/encoding/cbor/unmarshal.odin2
-rw-r--r--core/encoding/json/marshal.odin8
-rw-r--r--core/encoding/json/unmarshal.odin4
4 files changed, 10 insertions, 6 deletions
diff --git a/core/encoding/cbor/tags.odin b/core/encoding/cbor/tags.odin
index 17420af46..ae1664dfc 100644
--- a/core/encoding/cbor/tags.odin
+++ b/core/encoding/cbor/tags.odin
@@ -298,7 +298,7 @@ tag_base64_unmarshal :: proc(_: ^Tag_Implementation, d: Decoder, _: Tag_Number,
#partial switch t in ti.variant {
case reflect.Type_Info_String:
-
+ assert(t.encoding == .UTF_8)
if t.is_cstring {
length := base64.decoded_len(bytes)
builder := strings.builder_make(0, length+1)
diff --git a/core/encoding/cbor/unmarshal.odin b/core/encoding/cbor/unmarshal.odin
index 365ac5d6f..043b2ec60 100644
--- a/core/encoding/cbor/unmarshal.odin
+++ b/core/encoding/cbor/unmarshal.odin
@@ -335,6 +335,8 @@ _unmarshal_value :: proc(d: Decoder, v: any, hdr: Header, allocator := context.a
_unmarshal_bytes :: proc(d: Decoder, v: any, ti: ^reflect.Type_Info, hdr: Header, add: Add, allocator := context.allocator, loc := #caller_location) -> (err: Unmarshal_Error) {
#partial switch t in ti.variant {
case reflect.Type_Info_String:
+ assert(t.encoding == .UTF_8)
+
bytes := err_conv(_decode_bytes(d, add, allocator=allocator, loc=loc)) or_return
if t.is_cstring {
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..0b65adaac 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.encoding == .UTF_8)
+
key_ptr = rawptr(&key)
key_cstr: cstring
if reflect.is_cstring(t.key) {