mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-21 19:25:00 -07:00
eval visualization - allow chained expressions to cause multiple child expansion blocks; begin work on unified lister watch window
This commit is contained in:
@@ -409,6 +409,7 @@ e_expr_copy(Arena *arena, E_Expr *src)
|
||||
E_Expr *dst_parent;
|
||||
E_Expr *src;
|
||||
B32 is_ref;
|
||||
B32 is_sib;
|
||||
};
|
||||
Task start_task = {0, &e_expr_nil, src};
|
||||
Task *first_task = &start_task;
|
||||
@@ -431,10 +432,23 @@ e_expr_copy(Arena *arena, E_Expr *src)
|
||||
{
|
||||
t->dst_parent->ref = dst;
|
||||
}
|
||||
else if(t->is_sib)
|
||||
{
|
||||
t->dst_parent->next = dst;
|
||||
dst->prev = t->dst_parent;
|
||||
}
|
||||
else
|
||||
{
|
||||
e_expr_push_child(t->dst_parent, dst);
|
||||
}
|
||||
if(t->src->next != &e_expr_nil)
|
||||
{
|
||||
Task *task = push_array(scratch.arena, Task, 1);
|
||||
task->dst_parent = dst;
|
||||
task->src = t->src->next;
|
||||
task->is_sib = 1;
|
||||
SLLQueuePush(first_task, last_task, task);
|
||||
}
|
||||
if(t->src->ref != &e_expr_nil)
|
||||
{
|
||||
Task *task = push_array(scratch.arena, Task, 1);
|
||||
|
||||
Reference in New Issue
Block a user