fix expansion rules being applied to traditionally non-expandable type info; plug memory view back in

This commit is contained in:
Ryan Fleury
2025-02-10 16:32:07 -08:00
parent 29033fe6cc
commit 80b0138ea3
2 changed files with 12 additions and 12 deletions
@@ -537,8 +537,13 @@ ev_block_tree_from_string(Arena *arena, EV_View *view, String8 filter, String8 s
// rjf: unpack expr
E_IRTreeAndType expr_irtree = e_irtree_and_type_from_expr(scratch.arena, t->expr);
// rjf: skip if type info disallows expansion
if(!ev_type_key_and_mode_is_expandable(expr_irtree.type_key, expr_irtree.mode))
// rjf: get expr's expansion rule
EV_ExpandRuleTagPair expand_rule_and_tag = ev_expand_rule_tag_pair_from_expr_irtree(t->expr, &expr_irtree);
EV_ExpandRule *expand_rule = expand_rule_and_tag.rule;
E_Expr *expand_rule_tag = expand_rule_and_tag.tag;
// rjf: skip if no expansion rule, & type info disallows expansion
if(expand_rule == &ev_nil_expand_rule && !ev_type_key_and_mode_is_expandable(expr_irtree.type_key, expr_irtree.mode))
{
continue;
}
@@ -548,11 +553,6 @@ ev_block_tree_from_string(Arena *arena, EV_View *view, String8 filter, String8 s
E_LookupRule *lookup_rule = lookup_rule_and_tag.rule;
E_Expr *lookup_rule_tag = lookup_rule_and_tag.tag;
// rjf: get expr's expansion rule
EV_ExpandRuleTagPair expand_rule_and_tag = ev_expand_rule_tag_pair_from_expr_irtree(t->expr, &expr_irtree);
EV_ExpandRule *expand_rule = expand_rule_and_tag.rule;
E_Expr *expand_rule_tag = expand_rule_and_tag.tag;
// rjf: get top-level lookup/expansion info
E_LookupInfo lookup_info = lookup_rule->info(arena, &expr_irtree, filter);
EV_ExpandInfo expand_info = expand_rule->info(arena, view, filter, t->expr, expand_rule_tag);
+5 -5
View File
@@ -4524,7 +4524,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
//////////////////////////////
//- rjf: unpack parameterization info
//
Rng1U64 space_range = {0}; // TODO(rjf): @cfg rd_range_from_eval_params(eval, params);
Rng1U64 space_range = rd_range_from_eval_tag(eval, tag);
if(eval.space.kind == 0)
{
eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process), RD_EvalSpaceKind_CtrlEntity);
@@ -4534,10 +4534,10 @@ RD_VIEW_UI_FUNCTION_DEF(memory)
space_range = r1u64(0, 0x7FFFFFFFFFFFull);
}
}
U64 cursor = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("cursor_vaddr")).u64;
U64 mark = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("mark_vaddr")).u64;
U64 bytes_per_cell = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("bytes_per_cell")).u64;
U64 num_columns = 0; // TODO(rjf): @cfg rd_value_from_params_key(params, str8_lit("num_columns")).u64;
U64 cursor = rd_view_cfg_value_from_string(str8_lit("cursor_vaddr")).u64;
U64 mark = rd_view_cfg_value_from_string(str8_lit("mark_vaddr")).u64;
U64 bytes_per_cell = rd_view_cfg_value_from_string(str8_lit("bytes_per_cell")).u64;
U64 num_columns = rd_view_cfg_value_from_string(str8_lit("num_columns")).u64;
if(num_columns == 0)
{
num_columns = 16;