mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
pass over row info building
This commit is contained in:
+99
-54
@@ -934,31 +934,54 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
.group_entity = &ctrl_entity_nil,
|
.group_entity = &ctrl_entity_nil,
|
||||||
.callstack_thread = &ctrl_entity_nil,
|
.callstack_thread = &ctrl_entity_nil,
|
||||||
.view_ui_rule = &rd_nil_view_ui_rule,
|
.view_ui_rule = &rd_nil_view_ui_rule,
|
||||||
.view_ui_tag = &e_expr_nil,
|
|
||||||
};
|
};
|
||||||
{
|
{
|
||||||
Temp scratch = scratch_begin(&arena, 1);
|
Temp scratch = scratch_begin(&arena, 1);
|
||||||
DI_Scope *di_scope = di_scope_open();
|
|
||||||
|
|
||||||
// rjf: unpack key & block
|
////////////////////////////
|
||||||
EV_Block *block = row->block;
|
//- rjf: unpack row's evaluation, key, & block info
|
||||||
|
//
|
||||||
|
E_Type *row_type = e_type_from_key__cached(row->eval.irtree.type_key);
|
||||||
EV_Key key = row->key;
|
EV_Key key = row->key;
|
||||||
|
EV_Block *block = row->block;
|
||||||
E_Eval block_eval = row->block->eval;
|
E_Eval block_eval = row->block->eval;
|
||||||
E_TypeKey block_type_key = block_eval.irtree.type_key;
|
E_TypeKey block_type_key = block_eval.irtree.type_key;
|
||||||
E_TypeKind block_type_kind = e_type_kind_from_key(block_type_key);
|
E_TypeKind block_type_kind = e_type_kind_from_key(block_type_key);
|
||||||
E_Type *block_type = e_type_from_key__cached(block_type_key);
|
E_Type *block_type = e_type_from_key__cached(block_type_key);
|
||||||
|
RD_Cfg *evalled_cfg = rd_cfg_from_eval_space(row->eval.space);
|
||||||
|
CTRL_Entity *evalled_entity = (row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity ? rd_ctrl_entity_from_eval_space(row->eval.space) : &ctrl_entity_nil);
|
||||||
|
|
||||||
// rjf: determine if row's expression is editable
|
////////////////////////////
|
||||||
|
//- rjf: determine if this cfg/entity evaluation is top-level - e.g. if we
|
||||||
|
// are evaluating a cfg tree, or some descendant of it
|
||||||
|
//
|
||||||
|
B32 is_top_level = 0;
|
||||||
|
if(evalled_cfg != &rd_nil_cfg)
|
||||||
|
{
|
||||||
|
E_TypeKey top_level_type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, evalled_cfg->string);
|
||||||
|
is_top_level = (row->eval.value.u64 == 0 && e_type_key_match(top_level_type_key, row->eval.irtree.type_key));
|
||||||
|
}
|
||||||
|
if(evalled_entity != &ctrl_entity_nil)
|
||||||
|
{
|
||||||
|
String8 top_level_name = ctrl_entity_kind_code_name_table[evalled_entity->kind];
|
||||||
|
E_TypeKey top_level_type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, top_level_name);
|
||||||
|
is_top_level = (row->eval.value.u64 == 0 && e_type_key_match(top_level_type_key, row->eval.irtree.type_key));
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////
|
||||||
|
//- rjf: fill if row's expression is editable
|
||||||
|
//
|
||||||
if(block_type->flags & E_TypeFlag_EditableChildren || row->eval.expr == &e_expr_nil)
|
if(block_type->flags & E_TypeFlag_EditableChildren || row->eval.expr == &e_expr_nil)
|
||||||
{
|
{
|
||||||
info.expr_is_editable = 1;
|
info.expr_is_editable = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: determine row's module
|
////////////////////////////
|
||||||
CTRL_Entity *row_ctrl_entity = rd_ctrl_entity_from_eval_space(row->eval.space);
|
//- rjf: fill row's module
|
||||||
CTRL_Entity *row_module = ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->module);
|
//
|
||||||
if(row->eval.space.kind == RD_EvalSpaceKind_CtrlEntity)
|
if(row->eval.space.kind == RD_EvalSpaceKind_CtrlEntity)
|
||||||
{
|
{
|
||||||
|
CTRL_Entity *row_ctrl_entity = rd_ctrl_entity_from_eval_space(row->eval.space);
|
||||||
switch(row_ctrl_entity->kind)
|
switch(row_ctrl_entity->kind)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
@@ -976,12 +999,15 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: determine call stack info
|
////////////////////////////
|
||||||
|
//- rjf: fill row's call stack info
|
||||||
|
//
|
||||||
if(block_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity && str8_match(str8_lit("call_stack"), block_type->name, 0))
|
if(block_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity && str8_match(str8_lit("call_stack"), block_type->name, 0))
|
||||||
{
|
{
|
||||||
CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(block_eval.space);
|
CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(block_eval.space);
|
||||||
if(entity->kind == CTRL_EntityKind_Thread)
|
if(entity->kind == CTRL_EntityKind_Thread)
|
||||||
{
|
{
|
||||||
|
DI_Scope *di_scope = di_scope_open();
|
||||||
info.callstack_thread = entity;
|
info.callstack_thread = entity;
|
||||||
U64 frame_num = ev_block_num_from_id(block, key.child_id);
|
U64 frame_num = ev_block_num_from_id(block, key.child_id);
|
||||||
CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity);
|
CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity);
|
||||||
@@ -993,24 +1019,31 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
info.callstack_inline_depth = f->inline_depth;
|
info.callstack_inline_depth = f->inline_depth;
|
||||||
info.callstack_vaddr = regs_rip_from_arch_block(entity->arch, f->regs);
|
info.callstack_vaddr = regs_rip_from_arch_block(entity->arch, f->regs);
|
||||||
}
|
}
|
||||||
|
di_scope_close(di_scope);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: determine ctrl entity
|
////////////////////////////
|
||||||
|
//- rjf: fill row's ctrl entity
|
||||||
|
//
|
||||||
if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery ||
|
if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery ||
|
||||||
block_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity))
|
block_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity))
|
||||||
{
|
{
|
||||||
info.group_entity = rd_ctrl_entity_from_eval_space(row->eval.space);
|
info.group_entity = rd_ctrl_entity_from_eval_space(row->eval.space);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: determine cfg group name / parent
|
////////////////////////////
|
||||||
|
//- rjf: fill row's cfg group name / parent
|
||||||
|
//
|
||||||
if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery ||
|
if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery ||
|
||||||
block_eval.space.kind == RD_EvalSpaceKind_MetaCfg))
|
block_eval.space.kind == RD_EvalSpaceKind_MetaCfg))
|
||||||
{
|
{
|
||||||
info.group_cfg_parent = rd_cfg_from_eval_space(block_eval.space);
|
info.group_cfg_parent = rd_cfg_from_eval_space(block_eval.space);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: determine group cfg name
|
////////////////////////////
|
||||||
|
//- rjf: fill row's group cfg name
|
||||||
|
//
|
||||||
if(block_type_kind == E_TypeKind_Set)
|
if(block_type_kind == E_TypeKind_Set)
|
||||||
{
|
{
|
||||||
String8 singular_name = rd_singular_from_code_name_plural(block_type->name);
|
String8 singular_name = rd_singular_from_code_name_plural(block_type->name);
|
||||||
@@ -1024,7 +1057,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: determine row's group cfg
|
////////////////////////////
|
||||||
|
//- rjf: fill row's group cfg
|
||||||
|
//
|
||||||
if(info.group_cfg_name.size != 0 && (block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs) ||
|
if(info.group_cfg_name.size != 0 && (block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs) ||
|
||||||
block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches) ||
|
block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches) ||
|
||||||
block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment)))
|
block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment)))
|
||||||
@@ -1033,29 +1068,14 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
info.group_cfg_child = rd_cfg_from_id(id);
|
info.group_cfg_child = rd_cfg_from_id(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: determine cfgs/entities that this row is evaluating
|
////////////////////////////
|
||||||
RD_Cfg *evalled_cfg = rd_cfg_from_eval_space(row->eval.space);
|
//- rjf: fill row's view ui rule
|
||||||
CTRL_Entity *evalled_entity = (row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity ? rd_ctrl_entity_from_eval_space(row->eval.space) : &ctrl_entity_nil);
|
//
|
||||||
|
|
||||||
// rjf: determine if this cfg/entity evaluation is top-level - e.g. if we
|
|
||||||
// are evaluating a cfg tree, or some descendant of it
|
|
||||||
B32 is_top_level = 0;
|
|
||||||
if(evalled_cfg != &rd_nil_cfg)
|
|
||||||
{
|
|
||||||
E_TypeKey top_level_type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, evalled_cfg->string);
|
|
||||||
is_top_level = (row->eval.value.u64 == 0 && e_type_key_match(top_level_type_key, row->eval.irtree.type_key));
|
|
||||||
}
|
|
||||||
if(evalled_entity != &ctrl_entity_nil)
|
|
||||||
{
|
|
||||||
String8 top_level_name = ctrl_entity_kind_code_name_table[evalled_entity->kind];
|
|
||||||
E_TypeKey top_level_type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, top_level_name);
|
|
||||||
is_top_level = (row->eval.value.u64 == 0 && e_type_key_match(top_level_type_key, row->eval.irtree.type_key));
|
|
||||||
}
|
|
||||||
|
|
||||||
// rjf: determine view ui rule
|
|
||||||
info.view_ui_rule = rd_view_ui_rule_from_string(row->block->viz_expand_rule->string);
|
info.view_ui_rule = rd_view_ui_rule_from_string(row->block->viz_expand_rule->string);
|
||||||
|
|
||||||
// rjf: find possible table type
|
////////////////////////////
|
||||||
|
//- rjf: find possible table type
|
||||||
|
//
|
||||||
E_Type *maybe_table_type = block_type;
|
E_Type *maybe_table_type = block_type;
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
@@ -1075,11 +1095,10 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: fill row's cells
|
////////////////////////////
|
||||||
{
|
//- rjf: @watch_row_build_cells table rows
|
||||||
|
//
|
||||||
if(0){}
|
if(0){}
|
||||||
|
|
||||||
// rjf: table rows
|
|
||||||
else if(block->parent != &ev_nil_block && maybe_table_type->kind == E_TypeKind_Lens && str8_match(maybe_table_type->name, str8_lit("table"), 0) && maybe_table_type->count >= 1)
|
else if(block->parent != &ev_nil_block && maybe_table_type->kind == E_TypeKind_Lens && str8_match(maybe_table_type->name, str8_lit("table"), 0) && maybe_table_type->count >= 1)
|
||||||
{
|
{
|
||||||
U64 column_count = maybe_table_type->count;
|
U64 column_count = maybe_table_type->count;
|
||||||
@@ -1101,7 +1120,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
#undef take_pct
|
#undef take_pct
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: folder / file rows
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells files / folders
|
||||||
|
//
|
||||||
else if(row->eval.space.kind == E_SpaceKind_FileSystem)
|
else if(row->eval.space.kind == E_SpaceKind_FileSystem)
|
||||||
{
|
{
|
||||||
E_Type *type = e_type_from_key__cached(row->eval.irtree.type_key);
|
E_Type *type = e_type_from_key__cached(row->eval.irtree.type_key);
|
||||||
@@ -1132,7 +1153,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: singular button for unattached processes
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells unattached processes
|
||||||
|
//
|
||||||
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaUnattachedProcess)
|
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaUnattachedProcess)
|
||||||
{
|
{
|
||||||
E_Type *type = e_type_from_key__cached(row->eval.irtree.type_key);
|
E_Type *type = e_type_from_key__cached(row->eval.irtree.type_key);
|
||||||
@@ -1158,14 +1181,18 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: lister rows
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells lister rows
|
||||||
|
//
|
||||||
else if(rd_cfg_child_from_string(rd_cfg_from_id(rd_regs()->view), str8_lit("lister")) != &rd_nil_cfg)
|
else if(rd_cfg_child_from_string(rd_cfg_from_id(rd_regs()->view), str8_lit("lister")) != &rd_nil_cfg)
|
||||||
{
|
{
|
||||||
info.can_expand = 0;
|
info.can_expand = 0;
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Button|RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: top-level cfg rows
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells top-level cfg evaluations
|
||||||
|
//
|
||||||
else if(is_top_level && evalled_cfg != &rd_nil_cfg)
|
else if(is_top_level && evalled_cfg != &rd_nil_cfg)
|
||||||
{
|
{
|
||||||
RD_Cfg *cfg = evalled_cfg;
|
RD_Cfg *cfg = evalled_cfg;
|
||||||
@@ -1230,7 +1257,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: top-level entity rows
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells ctrl entity evaluations
|
||||||
|
//
|
||||||
else if(is_top_level && evalled_entity != &ctrl_entity_nil)
|
else if(is_top_level && evalled_entity != &ctrl_entity_nil)
|
||||||
{
|
{
|
||||||
CTRL_Entity *entity = evalled_entity;
|
CTRL_Entity *entity = evalled_entity;
|
||||||
@@ -1255,13 +1284,17 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: singular row for queries
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells queries
|
||||||
|
//
|
||||||
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaQuery)
|
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaQuery)
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Indented, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: singular button for commands
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells commands
|
||||||
|
//
|
||||||
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaCmd)
|
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaCmd)
|
||||||
{
|
{
|
||||||
E_Type *type = e_type_from_key__cached(row->eval.irtree.type_key);
|
E_Type *type = e_type_from_key__cached(row->eval.irtree.type_key);
|
||||||
@@ -1277,19 +1310,25 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: singular cell for view ui
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells view UI escape hatch
|
||||||
|
//
|
||||||
else if(info.view_ui_rule != &rd_nil_view_ui_rule)
|
else if(info.view_ui_rule != &rd_nil_view_ui_rule)
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_ViewUI, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_ViewUI, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: for 'add-new' rows in meta-cfg evaluation spaces, only do expr
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells "add new" expression rows
|
||||||
|
//
|
||||||
else if(row->eval.expr == &e_expr_nil && info.group_cfg_name.size != 0 && info.group_cfg_child == &rd_nil_cfg)
|
else if(row->eval.expr == &e_expr_nil && info.group_cfg_name.size != 0 && info.group_cfg_child == &rd_nil_cfg)
|
||||||
{
|
{
|
||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Indented, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: for meta-evaluation space booleans, only do expr
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells meta-evaluation booleans
|
||||||
|
//
|
||||||
else if(e_type_kind_from_key(row->eval.irtree.type_key) == E_TypeKind_Bool &&
|
else if(e_type_kind_from_key(row->eval.irtree.type_key) == E_TypeKind_Bool &&
|
||||||
(row->eval.space.kind == RD_EvalSpaceKind_MetaCfg ||
|
(row->eval.space.kind == RD_EvalSpaceKind_MetaCfg ||
|
||||||
row->eval.space.kind == RD_EvalSpaceKind_MetaCmd ||
|
row->eval.space.kind == RD_EvalSpaceKind_MetaCmd ||
|
||||||
@@ -1298,7 +1337,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Indented, .pct = 1.f);
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Expr, .flags = RD_WatchCellFlag_Indented, .pct = 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: for meta-cfg evaluation spaces, only do expr/value
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells meta-evaluation catch-all: expression / value
|
||||||
|
//
|
||||||
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaCfg ||
|
else if(row->eval.space.kind == RD_EvalSpaceKind_MetaCfg ||
|
||||||
row->eval.space.kind == RD_EvalSpaceKind_MetaCmd ||
|
row->eval.space.kind == RD_EvalSpaceKind_MetaCmd ||
|
||||||
row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity ||
|
row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity ||
|
||||||
@@ -1320,7 +1361,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
#undef take_pct
|
#undef take_pct
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: procedures collections get only expr/value
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells procedures (expr & eval, mostly expr)
|
||||||
|
//
|
||||||
else if(block_type->kind == E_TypeKind_Set && str8_match(block_type->name, str8_lit("procedures"), 0))
|
else if(block_type->kind == E_TypeKind_Set && str8_match(block_type->name, str8_lit("procedures"), 0))
|
||||||
{
|
{
|
||||||
info.cell_style_key = str8_lit("procedure_expr_eval");
|
info.cell_style_key = str8_lit("procedure_expr_eval");
|
||||||
@@ -1334,7 +1377,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
#undef take_pct
|
#undef take_pct
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: callstack frames
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells call stack frames
|
||||||
|
//
|
||||||
else if(info.callstack_thread != &ctrl_entity_nil)
|
else if(info.callstack_thread != &ctrl_entity_nil)
|
||||||
{
|
{
|
||||||
info.cell_style_key = str8_lit("call_stack_frame");
|
info.cell_style_key = str8_lit("call_stack_frame");
|
||||||
@@ -1361,7 +1406,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
#undef take_pct
|
#undef take_pct
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: default cells
|
////////////////////////////
|
||||||
|
//- rjf: @watch_row_build_cells catchall (normal rows)
|
||||||
|
//
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
info.cell_style_key = str8_lit("normal");
|
info.cell_style_key = str8_lit("normal");
|
||||||
@@ -1375,9 +1422,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
|
|||||||
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, .string = str8_lit("typeof(raw($expr))"), .default_pct = 0.25f, .pct = take_pct());
|
rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, .string = str8_lit("typeof(raw($expr))"), .default_pct = 0.25f, .pct = take_pct());
|
||||||
#undef take_pct
|
#undef take_pct
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
di_scope_close(di_scope);
|
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ struct RD_WatchRowInfo
|
|||||||
String8 cell_style_key;
|
String8 cell_style_key;
|
||||||
RD_WatchCellList cells;
|
RD_WatchCellList cells;
|
||||||
RD_ViewUIRule *view_ui_rule;
|
RD_ViewUIRule *view_ui_rule;
|
||||||
E_Expr *view_ui_tag;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct RD_WatchRowCellInfo RD_WatchRowCellInfo;
|
typedef struct RD_WatchRowCellInfo RD_WatchRowCellInfo;
|
||||||
|
|||||||
Reference in New Issue
Block a user