diff options
| author | gingerBill <bill@gingerbill.org> | 2019-12-01 14:10:59 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2019-12-01 14:10:59 +0000 |
| commit | 9db81498d8fbf4b24383cd7de94619943ad4e01a (patch) | |
| tree | 6263d1649607f44a1d8affc2baf1d39da906698f /core/encoding/json/parser.odin | |
| parent | 7fbe0a6f2385e618ea4d3a724d2ed6147b6921bf (diff) | |
Make the `string` type elements "immutable", akin to `char const *` in C
Allows for extra security and optimization benefits
Diffstat (limited to 'core/encoding/json/parser.odin')
| -rw-r--r-- | core/encoding/json/parser.odin | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/core/encoding/json/parser.odin b/core/encoding/json/parser.odin index 63f4a758b..36a68f31c 100644 --- a/core/encoding/json/parser.odin +++ b/core/encoding/json/parser.odin @@ -174,7 +174,7 @@ parse_array :: proc(p: ^Parser) -> (value: Value, err: Error) { clone_string :: proc(s: string, allocator: mem.Allocator) -> string { n := len(s); b := make([]byte, n+1, allocator); - copy(b, cast([]byte)s); + copy(b, s); b[n] = 0; return string(b[:n]); } @@ -349,7 +349,7 @@ unquote_string :: proc(token: Token, spec: Specification, allocator := context.a } b := make([]byte, len(s) + 2*utf8.UTF_MAX, allocator); - w := copy(b, cast([]byte)s[0:i]); + w := copy(b, s[0:i]); loop: for i < len(s) { c := s[i]; switch { |