diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2022-04-19 20:04:38 +0200 |
|---|---|---|
| committer | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2022-04-19 20:04:38 +0200 |
| commit | 581255bf23af90b77bb2b6e2671b40e2b565754e (patch) | |
| tree | 5091553fcca64ec63bad3d76fdf28b88b6b246ab /core/encoding/json/parser.odin | |
| parent | b51358a01c2950cf8f572ce4934f88ee55cad5a7 (diff) | |
Fix unmarshal for escaped strings.
Diffstat (limited to 'core/encoding/json/parser.odin')
| -rw-r--r-- | core/encoding/json/parser.odin | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/core/encoding/json/parser.odin b/core/encoding/json/parser.odin index c682ec9bd..0b9a1cf33 100644 --- a/core/encoding/json/parser.odin +++ b/core/encoding/json/parser.odin @@ -281,6 +281,11 @@ parse_object :: proc(p: ^Parser) -> (value: Value, err: Error) { // IMPORTANT NOTE(bill): unquote_string assumes a mostly valid string unquote_string :: proc(token: Token, spec: Specification, allocator := context.allocator) -> (value: string, err: Error) { + if allocator.data == nil { + // We were called from `unmarshal_count_array`, return early. + return "", nil + } + get_u2_rune :: proc(s: string) -> rune { if len(s) < 4 || s[0] != '\\' || s[1] != 'x' { return -1 |