skip block group row unpack paths when we're doing the special case of a root block row generation

This commit is contained in:
Ryan Fleury
2025-07-23 15:20:41 -07:00
parent cf9d736ff5
commit a776f53379
+13
View File
@@ -945,6 +945,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
E_Type *row_type = e_type_from_key(row->eval.irtree.type_key); E_Type *row_type = e_type_from_key(row->eval.irtree.type_key);
EV_Key key = row->key; EV_Key key = row->key;
EV_Block *block = row->block; EV_Block *block = row->block;
B32 block_is_root = (block->parent == &ev_nil_block);
E_Eval block_eval = e_eval_from_key(row->block->eval.key); E_Eval block_eval = e_eval_from_key(row->block->eval.key);
E_TypeKey block_type_key = e_type_key_unwrap(block_eval.irtree.type_key, E_TypeUnwrapFlag_Meta); E_TypeKey block_type_key = e_type_key_unwrap(block_eval.irtree.type_key, E_TypeUnwrapFlag_Meta);
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);
@@ -1027,24 +1028,32 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
//////////////////////////// ////////////////////////////
//- rjf: fill row's ctrl entity //- rjf: fill row's ctrl entity
// //
if(!block_is_root)
{
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: fill row's cfg group name / parent //- rjf: fill row's cfg group name / parent
// //
if(!block_is_root)
{
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: fill row's group cfg name //- rjf: fill row's group cfg name
// //
if(!block_is_root)
{
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);
@@ -1057,10 +1066,13 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
info.group_cfg_name = block_type->name; info.group_cfg_name = block_type->name;
} }
} }
}
//////////////////////////// ////////////////////////////
//- rjf: fill row's group cfg //- rjf: fill row's group cfg
// //
if(!block_is_root)
{
if(info.group_cfg_name.size != 0 && (block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs_slice) || if(info.group_cfg_name.size != 0 && (block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs_slice) ||
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)))
@@ -1068,6 +1080,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row)
RD_CfgID id = row->key.child_id; RD_CfgID id = row->key.child_id;
info.group_cfg_child = rd_cfg_from_id(id); info.group_cfg_child = rd_cfg_from_id(id);
} }
}
//////////////////////////// ////////////////////////////
//- rjf: fill row's view ui rule //- rjf: fill row's view ui rule