aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-07-15 12:56:52 +0200
committerDanielGavin <danielgavin5@hotmail.com>2024-07-15 12:56:52 +0200
commit65e3cd5cc93506ce6cfa7c6d5ffcb24d37c00baa (patch)
treee463c43a654e95d370f627a77016b5a401a1cda1 /src
parentdc180fe09b1f23a58de4d067bca158377291f247 (diff)
Fix new odin changes.
Diffstat (limited to 'src')
-rw-r--r--src/server/marshal.odin12
-rw-r--r--src/server/unmarshal.odin21
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),
),