mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 05:18:40 +00:00
fix up issues with user <-> ctrl thread communication
This commit is contained in:
@@ -339,6 +339,10 @@ deserialized_from_typed_data(Arena *arena, Type *type, String8 data, TypeSeriali
|
|||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(params->advance_out != 0)
|
||||||
|
{
|
||||||
|
params->advance_out[0] = read_off;
|
||||||
|
}
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ struct TypeSerializePtrRefInfo
|
|||||||
typedef struct TypeSerializeParams TypeSerializeParams;
|
typedef struct TypeSerializeParams TypeSerializeParams;
|
||||||
struct TypeSerializeParams
|
struct TypeSerializeParams
|
||||||
{
|
{
|
||||||
|
U64 *advance_out;
|
||||||
TypeSerializePtrRefInfo *ptr_ref_infos;
|
TypeSerializePtrRefInfo *ptr_ref_infos;
|
||||||
U64 ptr_ref_infos_count;
|
U64 ptr_ref_infos_count;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -463,8 +463,10 @@ ctrl_msg_list_from_serialized_string(Arena *arena, String8 string)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// rjf: read meta-eval-info array
|
// rjf: read meta-eval-info array
|
||||||
String8 meta_evals_srlzed = str8_skip(string, read_off);
|
String8 meta_evals_data = str8_skip(string, read_off);
|
||||||
msg->meta_evals = *struct_from_serialized(arena, CTRL_MetaEvalArray, meta_evals_srlzed);
|
U64 meta_evals_size = 0;
|
||||||
|
msg->meta_evals = *struct_from_serialized(arena, CTRL_MetaEvalArray, meta_evals_data, .advance_out = &meta_evals_size);
|
||||||
|
read_off += meta_evals_size;
|
||||||
#if 0
|
#if 0
|
||||||
read_off += str8_deserial_read_struct(string, read_off, &msg->meta_eval_infos.count);
|
read_off += str8_deserial_read_struct(string, read_off, &msg->meta_eval_infos.count);
|
||||||
msg->meta_eval_infos.v = push_array(arena, CTRL_MetaEvalInfo, msg->meta_eval_infos.count);
|
msg->meta_eval_infos.v = push_array(arena, CTRL_MetaEvalInfo, msg->meta_eval_infos.count);
|
||||||
|
|||||||
@@ -1860,10 +1860,10 @@ rd_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range)
|
|||||||
{
|
{
|
||||||
CTRL_MetaEval *eval = &rd_state->meta_evals.v[space.u64_0];
|
CTRL_MetaEval *eval = &rd_state->meta_evals.v[space.u64_0];
|
||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
void *offsetify_base = arena_push(scratch.arena, 0, 64);
|
arena_push(scratch.arena, 0, 64);
|
||||||
|
void *offsetify_base = push_array(scratch.arena, U8, 0);
|
||||||
U64 pos_min = arena_pos(scratch.arena);
|
U64 pos_min = arena_pos(scratch.arena);
|
||||||
TypeSerializePtrRefInfo str_ptr_ref_info = { type(U8), .offsetify_base = offsetify_base};
|
String8 eval_srlzed = serialized_from_struct(scratch.arena, CTRL_MetaEval, eval);
|
||||||
String8 eval_srlzed = serialized_from_struct(scratch.arena, CTRL_MetaEval, eval, .ptr_ref_infos_count = 1, .ptr_ref_infos = &str_ptr_ref_info);
|
|
||||||
U64 pos_opl = arena_pos(scratch.arena);
|
U64 pos_opl = arena_pos(scratch.arena);
|
||||||
Rng1U64 legal_range = r1u64(0, pos_opl-pos_min);
|
Rng1U64 legal_range = r1u64(0, pos_opl-pos_min);
|
||||||
if(contains_1u64(legal_range, range.min))
|
if(contains_1u64(legal_range, range.min))
|
||||||
|
|||||||
Reference in New Issue
Block a user