mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-13 04:51:25 -07:00
first half of cell rendering pass
This commit is contained in:
@@ -246,6 +246,29 @@ e_value_from_expr(E_Expr *expr)
|
||||
return result;
|
||||
}
|
||||
|
||||
internal E_Eval
|
||||
e_eval_wrap(Arena *arena, E_Eval eval, String8 string)
|
||||
{
|
||||
E_IRTreeAndType *prev_overridden_irtree = e_ir_state->overridden_irtree;
|
||||
e_ir_state->overridden_irtree = &eval.irtree;
|
||||
E_Eval wrapped_eval = e_eval_from_string(arena, string);
|
||||
e_ir_state->overridden_irtree = prev_overridden_irtree;
|
||||
return wrapped_eval;
|
||||
}
|
||||
|
||||
internal E_Eval
|
||||
e_eval_wrapf(Arena *arena, E_Eval eval, char *fmt, ...)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
String8 string = push_str8fv(scratch.arena, fmt, args);
|
||||
E_Eval result = e_eval_wrap(arena, eval, string);
|
||||
va_end(args);
|
||||
scratch_end(scratch);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal U64
|
||||
e_base_offset_from_eval(E_Eval eval)
|
||||
{
|
||||
|
||||
@@ -36,6 +36,8 @@ internal E_Eval e_value_eval_from_eval(E_Eval eval);
|
||||
internal E_Value e_value_from_string(String8 string);
|
||||
internal E_Value e_value_from_stringf(char *fmt, ...);
|
||||
internal E_Value e_value_from_expr(E_Expr *expr);
|
||||
internal E_Eval e_eval_wrap(Arena *arena, E_Eval eval, String8 string);
|
||||
internal E_Eval e_eval_wrapf(Arena *arena, E_Eval eval, char *fmt, ...);;
|
||||
|
||||
internal U64 e_base_offset_from_eval(E_Eval eval);
|
||||
internal Rng1U64 e_range_from_eval(E_Eval eval);
|
||||
|
||||
+3
-2
@@ -2343,7 +2343,8 @@ e_irtree_and_type_from_expr(Arena *arena, E_Expr *root_expr)
|
||||
//- rjf: equip previous task's irtree
|
||||
if(t->prev != 0)
|
||||
{
|
||||
result.prev = t->prev;
|
||||
result.prev = push_array(arena, E_IRTreeAndType, 1);
|
||||
result.prev[0] = *t->prev;
|
||||
}
|
||||
|
||||
//- rjf: find any auto hooks according to this generation's type
|
||||
@@ -2360,7 +2361,7 @@ e_irtree_and_type_from_expr(Arena *arena, E_Expr *root_expr)
|
||||
Task *task = push_array(scratch.arena, Task, 1);
|
||||
SLLQueuePush(first_task, last_task, task);
|
||||
task->expr = e;
|
||||
task->prev = push_array(arena, E_IRTreeAndType, 1);
|
||||
task->prev = push_array(scratch.arena, E_IRTreeAndType, 1);
|
||||
task->prev[0] = result;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user