mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 05:48:40 +00:00
eliminate watch view fill kind; extend rtti & eval type system with 'external' pointers, for e.g. meta-space vaddr u64s pointing into an address space; begin sketching out paths for mutational rows in watch collections, use to add 'add target' fastpath in targets collection evaluations
This commit is contained in:
@@ -7902,6 +7902,10 @@ EV_VIEW_RULE_BLOCK_PROD_FUNCTION_DEF(rd_collection_block_prod)
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
RD_EntityList targets = rd_query_cached_entity_list_with_kind(RD_EntityKind_Target);
|
||||
EV_ViewRuleList top_level_view_rules = {0};
|
||||
EV_Key addnew_key = ev_key_make(ev_hash_from_key(key), 1);
|
||||
EV_Block *addnew_block = ev_block_begin(arena, EV_BlockKind_Canvas, key, addnew_key, depth);
|
||||
addnew_block->visual_idx_range = addnew_block->semantic_idx_range = r1u64(0, 1);
|
||||
ev_block_end(out, addnew_block);
|
||||
for(RD_EntityNode *n = targets.first; n != 0; n = n->next)
|
||||
{
|
||||
RD_Entity *target = n->entity;
|
||||
@@ -8255,7 +8259,19 @@ rd_append_value_strings_from_eval(Arena *arena, EV_StringFlags flags, U32 defaul
|
||||
if(eval.space.kind == RD_EvalSpaceKind_MetaEntity ||
|
||||
eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity)
|
||||
{
|
||||
no_addr = 1;
|
||||
E_TypeKind kind = e_type_kind_from_key(eval.type_key);
|
||||
if(kind != E_TypeKind_Ptr)
|
||||
{
|
||||
no_addr = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
E_Type *type = e_type_from_key(scratch.arena, eval.type_key);
|
||||
if(!(type->flags & E_TypeFlag_External))
|
||||
{
|
||||
no_addr = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//- rjf: member evaluations -> display member info
|
||||
|
||||
@@ -158,11 +158,6 @@ struct RD_SettingVal
|
||||
S32 s32;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: View Hook Function Types
|
||||
|
||||
typedef struct RD_View RD_View;
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: View Rule Info Types
|
||||
|
||||
@@ -186,6 +181,8 @@ typedef RD_VIEW_RULE_UI_FUNCTION_SIG(RD_ViewRuleUIFunctionType);
|
||||
////////////////////////////////
|
||||
//~ rjf: View Types
|
||||
|
||||
typedef struct RD_View RD_View;
|
||||
|
||||
typedef struct RD_ArenaExt RD_ArenaExt;
|
||||
struct RD_ArenaExt
|
||||
{
|
||||
|
||||
+807
-772
File diff suppressed because it is too large
Load Diff
@@ -81,22 +81,6 @@ struct RD_WatchViewColumn
|
||||
B32 dequote_string;
|
||||
};
|
||||
|
||||
typedef enum RD_WatchViewFillKind
|
||||
{
|
||||
RD_WatchViewFillKind_Watch,
|
||||
RD_WatchViewFillKind_Breakpoints,
|
||||
RD_WatchViewFillKind_WatchPins,
|
||||
RD_WatchViewFillKind_CallStack,
|
||||
RD_WatchViewFillKind_Registers,
|
||||
RD_WatchViewFillKind_Locals,
|
||||
RD_WatchViewFillKind_Globals,
|
||||
RD_WatchViewFillKind_ThreadLocals,
|
||||
RD_WatchViewFillKind_Types,
|
||||
RD_WatchViewFillKind_Procedures,
|
||||
RD_WatchViewFillKind_COUNT
|
||||
}
|
||||
RD_WatchViewFillKind;
|
||||
|
||||
typedef struct RD_WatchViewPoint RD_WatchViewPoint;
|
||||
struct RD_WatchViewPoint
|
||||
{
|
||||
@@ -123,9 +107,6 @@ struct RD_WatchViewState
|
||||
{
|
||||
B32 initialized;
|
||||
|
||||
// rjf: fill kinds (way that the contents of the watch view are computed)
|
||||
RD_WatchViewFillKind fill_kind;
|
||||
|
||||
// rjf: column state
|
||||
Arena *column_arena;
|
||||
RD_WatchViewColumn *first_column;
|
||||
@@ -176,7 +157,7 @@ internal RD_WatchViewColumn *rd_watch_view_column_alloc_(RD_WatchViewState *wv,
|
||||
internal void rd_watch_view_column_release(RD_WatchViewState *wv, RD_WatchViewColumn *col);
|
||||
|
||||
//- rjf: watch view main hooks
|
||||
internal void rd_watch_view_init(RD_WatchViewState *ewv, RD_WatchViewFillKind fill_kind);
|
||||
internal void rd_watch_view_init(RD_WatchViewState *ewv);
|
||||
internal void rd_watch_view_build(RD_WatchViewState *ewv, String8 root_expr, String8 root_view_rule, B32 modifiable, U32 default_radix, Rng2F32 rect);
|
||||
|
||||
#endif // RADDBG_VIEWS_H
|
||||
|
||||
Reference in New Issue
Block a user