adjust list lens member picking rules - use default argument, then fall back to next, prev, or the first pointer to an identical type

This commit is contained in:
Ryan Fleury
2025-10-16 11:10:00 -07:00
parent a2522c00fa
commit 8dbfa97c71
7 changed files with 90 additions and 18 deletions
+16
View File
@@ -4200,6 +4200,21 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg,
//- rjf: eval helpers
internal U64
ctrl_eval_space_gen(E_Space space)
{
U64 result = 0;
switch(space.kind)
{
default:{}break;
case CTRL_EvalSpaceKind_Entity:
{
result = ctrl_mem_gen();
}break;
}
return result;
}
internal B32
ctrl_eval_space_read(E_Space space, void *out, Rng1U64 range)
{
@@ -4418,6 +4433,7 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C
ctx->primary_module = eval_modules_primary;
//- rjf: fill space hooks
ctx->space_gen = ctrl_eval_space_gen;
ctx->space_read = ctrl_eval_space_read;
}
e_select_base_ctx(&scope->base_ctx);
+2 -1
View File
@@ -980,7 +980,8 @@ internal void ctrl_thread__module_close(CTRL_Handle process, CTRL_Handle module,
//- rjf: attached process running/event gathering
internal DMN_Event *ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, DMN_RunCtrls *run_ctrls, CTRL_Spoof *spoof);
//- rjf: eval helpers
//- rjf: eval helpers
internal U64 ctrl_eval_space_gen(E_Space space);
internal B32 ctrl_eval_space_read(E_Space space, void *out, Rng1U64 vaddr_range);
//- rjf: control thread eval scopes