diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2024-07-15 12:56:52 +0200 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2024-07-15 12:56:52 +0200 |
| commit | 65e3cd5cc93506ce6cfa7c6d5ffcb24d37c00baa (patch) | |
| tree | e463c43a654e95d370f627a77016b5a401a1cda1 /src | |
| parent | dc180fe09b1f23a58de4d067bca158377291f247 (diff) | |
Fix new odin changes.
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/marshal.odin | 12 | ||||
| -rw-r--r-- | src/server/unmarshal.odin | 21 |
2 files changed, 17 insertions, 16 deletions
diff --git a/src/server/marshal.odin b/src/server/marshal.odin index 1f18545..cb9d946 100644 --- a/src/server/marshal.odin +++ b/src/server/marshal.odin @@ -2,14 +2,14 @@ package server import "base:runtime" -import "core:mem" +import "core:encoding/json" +import "core:io" +import "core:log" import "core:math/bits" +import "core:mem" +import "core:reflect" import "core:strconv" import "core:strings" -import "core:reflect" -import "core:io" -import "core:encoding/json" -import "core:log" Marshal_Data_Error :: enum { None, @@ -419,7 +419,7 @@ marshal_to_writer :: proc( case runtime.Type_Info_Struct: opt_write_start(w, opt, '{') or_return - for name, i in info.names { + for name, i in info.names[0:info.field_count] { id := info.types[i].id data := rawptr(uintptr(v.data) + info.offsets[i]) diff --git a/src/server/unmarshal.odin b/src/server/unmarshal.odin index 7ad68c6..dea7d15 100644 --- a/src/server/unmarshal.odin +++ b/src/server/unmarshal.odin @@ -3,9 +3,9 @@ package server import "base:runtime" import "core:encoding/json" -import "core:strings" -import "core:mem" import "core:fmt" +import "core:mem" +import "core:strings" /* Right now union handling is type specific so you can only have one struct type, int type, etc. @@ -33,8 +33,8 @@ unmarshal :: proc( case json.Object: #partial switch variant in type_info.variant { case Type_Info_Struct: - for field, i in variant.names { - a := any{ + for field, i in variant.names[0:variant.field_count] { + a := any { rawptr(uintptr(v.data) + uintptr(variant.offsets[i])), variant.types[i].id, } @@ -78,11 +78,12 @@ unmarshal :: proc( case Type_Info_Dynamic_Array: array := (^mem.Raw_Dynamic_Array)(v.data) if array.data == nil { - array.data = mem.alloc( - len(j) * variant.elem_size, - variant.elem.align, - allocator, - ) or_else panic("OOM") + array.data = + mem.alloc( + len(j) * variant.elem_size, + variant.elem.align, + allocator, + ) or_else panic("OOM") array.len = len(j) array.cap = len(j) array.allocator = allocator @@ -91,7 +92,7 @@ unmarshal :: proc( } for i in 0 ..< array.len { - a := any{ + a := any { rawptr( uintptr(array.data) + uintptr(variant.elem_size * i), ), |