mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-17 09:32:22 -07:00
eval: more progress on 'sets', plug primary watch group into it; rd: more progress on watch ui based on new sets/lookups
This commit is contained in:
@@ -104,7 +104,8 @@ struct EV_DefaultExpandAccel
|
||||
{
|
||||
E_MemberArray members;
|
||||
E_EnumValArray enum_vals;
|
||||
void *lookup_accel;
|
||||
E_LookupRule *lookup_rule;
|
||||
void *lookup_user_data;
|
||||
U64 array_count;
|
||||
B32 array_need_extra_deref;
|
||||
B32 is_ptr2ptr;
|
||||
@@ -181,7 +182,11 @@ EV_VIEW_RULE_EXPR_EXPAND_INFO_FUNCTION_DEF(default)
|
||||
else if(type_kind == E_TypeKind_Set)
|
||||
{
|
||||
E_Type *type = e_type_from_key(scratch.arena, type_key);
|
||||
//E_LookupRule *rule = e_lookup_rule_from_string(type->name);
|
||||
E_LookupRule *rule = e_lookup_rule_from_string(type->name);
|
||||
E_LookupInfo lookup_info = rule->lookup_info(arena, expr);
|
||||
total_row_count = Max(lookup_info.named_expr_count, lookup_info.idxed_expr_count);
|
||||
accel->lookup_rule = rule;
|
||||
accel->lookup_user_data = lookup_info.user_data;
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
@@ -273,6 +278,23 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(default)
|
||||
result.row_members[0] = &e_member_nil;
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
//- rjf: fill with lookups
|
||||
//
|
||||
else if(accel->lookup_rule != 0)
|
||||
{
|
||||
result.row_exprs_count = needed_row_count;
|
||||
result.row_exprs = push_array(arena, E_Expr *, result.row_exprs_count);
|
||||
result.row_strings = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_view_rules = push_array(arena, String8, result.row_exprs_count);
|
||||
result.row_members = push_array(arena, E_Member *, result.row_exprs_count);
|
||||
for EachIndex(row_expr_idx, result.row_exprs_count)
|
||||
{
|
||||
result.row_exprs[row_expr_idx] = e_expr_ref_array_index(arena, expr, idx_range.min + row_expr_idx);
|
||||
result.row_members[row_expr_idx] = &e_member_nil;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user