mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-13 07:32:23 -07:00
eliminate manual notification of entity / panel mutations for soft halts & config changes; just compute a hash of all run parameterization state every time you run, and every frame, and if they change, soft halt refresh
This commit is contained in:
@@ -16,74 +16,74 @@ D_CfgSrcTable:
|
||||
////////////////////////////////
|
||||
//~ rjf: Entity Kind Tables
|
||||
|
||||
@table(name name_lower name_lower_plural op_delete op_freeze op_edit op_rename op_enable op_cond op_dup lf_mut_user_cfg tr_mut_user_cfg lf_mut_prof_cfg tr_mut_prof_cfg lf_mut_halt lf_mut_dbg tr_mut_halt tr_mut_dbg name_is_code name_is_path user_lifetime is_serialized name_label icon_kind display_string)
|
||||
// | |
|
||||
// | __________________________________________________________________________________________________________________________________________________________________________________________/
|
||||
// | /
|
||||
// operations________ mutation cascading__ names lt sz
|
||||
// /..................\ /....................\ /...\ | |
|
||||
// dl fz ed rn en cn dp lu tu lp tp lh ld th td nc np ul iz
|
||||
@table(name name_lower name_lower_plural op_delete op_freeze op_edit op_rename op_enable op_cond op_dup name_is_code name_is_path user_lifetime is_serialized name_label icon_kind display_string)
|
||||
// | |
|
||||
// | _____________________________________________________________________________________________________________________________________/
|
||||
// | /
|
||||
// operations________ names lt sz
|
||||
// /..................\ /...\ | |
|
||||
// dl fz ed rn en cn dp nc np ul iz
|
||||
D_EntityKindTable:
|
||||
{
|
||||
{Nil nil nils 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Nil" }
|
||||
{Root root roots 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Root" }
|
||||
{Machine machine machines 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Machine "Machine" }
|
||||
{Nil nil nils 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Nil" }
|
||||
{Root root roots 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Root" }
|
||||
{Machine machine machines 0 1 0 1 0 0 0 0 0 0 0 "Label" Machine "Machine" }
|
||||
|
||||
//- rjf: filesystem modeling
|
||||
{File file files 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" FileOutline "File" }
|
||||
{File file files 0 0 0 0 0 0 0 0 0 0 0 "Label" FileOutline "File" }
|
||||
|
||||
//- rjf: auto view rules
|
||||
{AutoViewRule auto_view_rule auto_view_rules 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 "Label" Binoculars "Auto View Rule" }
|
||||
{AutoViewRule auto_view_rule auto_view_rules 0 0 0 0 0 0 0 0 0 1 1 "Label" Binoculars "Auto View Rule" }
|
||||
|
||||
//- rjf: file path maps
|
||||
{FilePathMap file_path_map file_path_maps 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 "Label" FileOutline "File Path Map" }
|
||||
{FilePathMap file_path_map file_path_maps 0 0 0 0 0 0 0 0 0 0 1 "Label" FileOutline "File Path Map" }
|
||||
|
||||
//- rjf: watch pins
|
||||
{WatchPin watch_pin watch_pins 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 "Expression" Pin "Watch Pin" }
|
||||
{WatchPin watch_pin watch_pins 1 0 0 1 0 0 1 1 0 1 1 "Expression" Pin "Watch Pin" }
|
||||
|
||||
//- rjf: watches
|
||||
{Watch watch watches 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 "Expression" Binoculars "Watch" }
|
||||
{ViewRule view_rule view_rules 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 "Expression" Binoculars "View Rule" }
|
||||
{Watch watch watches 1 0 0 1 1 0 1 1 0 1 1 "Expression" Binoculars "Watch" }
|
||||
{ViewRule view_rule view_rules 1 0 0 1 1 0 1 1 0 1 0 "Expression" Binoculars "View Rule" }
|
||||
|
||||
//- rjf: breakpoints
|
||||
{Breakpoint breakpoint breakpoints 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 0 1 1 "Label" CircleFilled "Breakpoint" }
|
||||
{Condition condition conditions 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 "Expression" CircleFilled "Condition" }
|
||||
{Breakpoint breakpoint breakpoints 1 0 0 1 1 1 1 0 0 1 1 "Label" CircleFilled "Breakpoint" }
|
||||
{Condition condition conditions 0 0 0 0 0 0 0 1 0 1 0 "Expression" CircleFilled "Condition" }
|
||||
|
||||
//- rjf: user-controlled locations (source, addresses, symbol names)
|
||||
{Location location locations 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 "Location" Null "Location" }
|
||||
{Location location locations 0 0 0 0 0 0 0 1 1 1 0 "Location" Null "Location" }
|
||||
|
||||
//- rjf: targets
|
||||
{Target target targets 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 "Label" Target "Target" }
|
||||
{Executable executable executables 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 "Executable" Null "Executable" }
|
||||
{Arguments arguments argumentses 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 "Arguments" Null "Arguments" }
|
||||
{WorkingDirectory working_directory working_directories 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 "Execution Path" Null "Working Directory" }
|
||||
{EntryPoint entry_point entry_points 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 "Symbol Name" Null "Entry Point" }
|
||||
{Target target targets 1 0 1 1 1 0 1 0 0 1 1 "Label" Target "Target" }
|
||||
{Executable executable executables 0 0 0 0 0 0 0 0 1 1 0 "Executable" Null "Executable" }
|
||||
{Arguments arguments argumentses 0 0 0 0 0 0 0 0 0 1 0 "Arguments" Null "Arguments" }
|
||||
{WorkingDirectory working_directory working_directories 0 0 0 0 0 0 0 0 1 1 0 "Execution Path" Null "Working Directory" }
|
||||
{EntryPoint entry_point entry_points 0 0 0 0 0 0 0 0 0 1 0 "Symbol Name" Null "Entry Point" }
|
||||
|
||||
//- rjf: view containers (windows, panels, views)
|
||||
{Window window windows 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 "Label" Window "Window" }
|
||||
{Panel panel panels 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 "Label" XSplit "Panel" }
|
||||
{View view views 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 "Label" Null "View" }
|
||||
{Window window windows 1 0 0 0 0 0 1 0 0 1 1 "Label" Window "Window" }
|
||||
{Panel panel panels 1 0 0 0 0 0 1 0 0 1 1 "Label" XSplit "Panel" }
|
||||
{View view views 1 0 0 0 0 0 1 0 0 1 1 "Label" Null "View" }
|
||||
|
||||
//- rjf: recent projects
|
||||
{RecentProject recent_project recent_projects 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 "Path" Briefcase "Recent Project" }
|
||||
{RecentProject recent_project recent_projects 0 0 0 0 0 0 0 0 1 0 1 "Path" Briefcase "Recent Project" }
|
||||
|
||||
//- rjf: src -> dst mapping
|
||||
{Source source sources 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Path" Null "Source" }
|
||||
{Dest dest dests 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Path" Null "Destination" }
|
||||
{Source source sources 0 0 0 0 0 0 0 0 0 0 0 "Path" Null "Source" }
|
||||
{Dest dest dests 0 0 0 0 0 0 0 0 0 0 0 "Path" Null "Destination" }
|
||||
|
||||
//- rjf: control system entities
|
||||
{Process process processes 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Threads "Process" }
|
||||
{Thread thread threads 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Thread "Thread" }
|
||||
{Module module modules 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Module "Module" }
|
||||
{PendingThreadName pending_thread_name pending_thread_names 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Threads "Pending Thread Name" }
|
||||
{DebugInfoPath debug_info_path debug_info_paths 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Module "Debug Info Path" }
|
||||
{Process process processes 0 1 0 1 0 0 0 0 0 0 0 "Label" Threads "Process" }
|
||||
{Thread thread threads 0 1 0 1 0 0 0 0 0 0 0 "Label" Thread "Thread" }
|
||||
{Module module modules 0 0 0 0 0 0 0 0 0 0 0 "Label" Module "Module" }
|
||||
{PendingThreadName pending_thread_name pending_thread_names 0 0 0 0 0 0 0 0 0 0 0 "Label" Threads "Pending Thread Name" }
|
||||
{DebugInfoPath debug_info_path debug_info_paths 0 0 0 0 0 0 0 0 0 0 0 "Label" Module "Debug Info Path" }
|
||||
|
||||
//- rjf: parser task entities
|
||||
{ConversionTask conversion_task conversion_tasks 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Conversion Task" }
|
||||
{ConversionFail conversion_fail conversion_fails 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Conversion Failure" }
|
||||
{ConversionTask conversion_task conversion_tasks 0 0 0 1 0 0 0 0 0 0 0 "Label" Null "Conversion Task" }
|
||||
{ConversionFail conversion_fail conversion_fails 0 0 0 1 0 0 0 0 0 0 0 "Label" Null "Conversion Failure" }
|
||||
|
||||
//- rjf: history
|
||||
{EndedProcess ended_process ended_processes 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "EndedProcess" }
|
||||
{EndedProcess ended_process ended_processes 1 0 0 1 0 0 0 0 0 0 0 "Label" Null "EndedProcess" }
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
@@ -639,7 +639,7 @@ DF_DevToggleTable:
|
||||
|
||||
@data(D_EntityKindFlags) d_entity_kind_flags_table:
|
||||
{
|
||||
@expand(D_EntityKindTable a) `($(a.op_delete)*D_EntityKindFlag_CanDelete) | ($(a.op_freeze)*D_EntityKindFlag_CanFreeze) | ($(a.op_edit)*D_EntityKindFlag_CanEdit) | ($(a.op_rename)*D_EntityKindFlag_CanRename) | ($(a.op_enable)*D_EntityKindFlag_CanEnable) | ($(a.op_cond)*D_EntityKindFlag_CanCondition) | ($(a.op_dup)*D_EntityKindFlag_CanDuplicate) | ($(a.lf_mut_user_cfg)*D_EntityKindFlag_LeafMutUserConfig | $(a.lf_mut_prof_cfg)*D_EntityKindFlag_LeafMutProjectConfig | $(a.lf_mut_halt)*D_EntityKindFlag_LeafMutSoftHalt | $(a.lf_mut_dbg)*D_EntityKindFlag_LeafMutDebugInfoMap | $(a.tr_mut_user_cfg)*D_EntityKindFlag_TreeMutUserConfig | $(a.tr_mut_prof_cfg)*D_EntityKindFlag_TreeMutProjectConfig | $(a.tr_mut_halt)*D_EntityKindFlag_TreeMutSoftHalt | $(a.tr_mut_dbg)*D_EntityKindFlag_TreeMutDebugInfoMap | $(a.name_is_code)*D_EntityKindFlag_NameIsCode | $(a.name_is_path)*D_EntityKindFlag_NameIsPath | $(a.user_lifetime)*D_EntityKindFlag_UserDefinedLifetime) | $(a.is_serialized)*D_EntityKindFlag_IsSerializedToConfig`,
|
||||
@expand(D_EntityKindTable a) `($(a.op_delete)*D_EntityKindFlag_CanDelete) | ($(a.op_freeze)*D_EntityKindFlag_CanFreeze) | ($(a.op_edit)*D_EntityKindFlag_CanEdit) | ($(a.op_rename)*D_EntityKindFlag_CanRename) | ($(a.op_enable)*D_EntityKindFlag_CanEnable) | ($(a.op_cond)*D_EntityKindFlag_CanCondition) | ($(a.op_dup)*D_EntityKindFlag_CanDuplicate) | ($(a.name_is_code)*D_EntityKindFlag_NameIsCode) | ($(a.name_is_path)*D_EntityKindFlag_NameIsPath) | ($(a.user_lifetime)*D_EntityKindFlag_UserDefinedLifetime) | ($(a.is_serialized)*D_EntityKindFlag_IsSerializedToConfig)`,
|
||||
}
|
||||
|
||||
//- rjf: config source tables
|
||||
|
||||
@@ -1230,37 +1230,6 @@ d_name_release(String8 string)
|
||||
////////////////////////////////
|
||||
//~ rjf: Entity State Functions
|
||||
|
||||
//- rjf: entity mutation notification codepath
|
||||
|
||||
internal void
|
||||
d_entity_notify_mutation(D_Entity *entity)
|
||||
{
|
||||
for(D_Entity *e = entity; !d_entity_is_nil(e); e = e->parent)
|
||||
{
|
||||
D_EntityKindFlags flags = d_entity_kind_flags_table[entity->kind];
|
||||
if(e == entity && flags & D_EntityKindFlag_LeafMutProjectConfig)
|
||||
{
|
||||
d_cmd(D_CmdKind_WriteProjectData);
|
||||
}
|
||||
if(e == entity && flags & D_EntityKindFlag_LeafMutSoftHalt && d_ctrl_targets_running())
|
||||
{
|
||||
d_state->entities_mut_soft_halt = 1;
|
||||
}
|
||||
if(e == entity && flags & D_EntityKindFlag_LeafMutDebugInfoMap)
|
||||
{
|
||||
d_state->entities_mut_dbg_info_map = 1;
|
||||
}
|
||||
if(flags & D_EntityKindFlag_TreeMutSoftHalt && d_ctrl_targets_running())
|
||||
{
|
||||
d_state->entities_mut_soft_halt = 1;
|
||||
}
|
||||
if(flags & D_EntityKindFlag_TreeMutDebugInfoMap)
|
||||
{
|
||||
d_state->entities_mut_dbg_info_map = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//- rjf: entity allocation + tree forming
|
||||
|
||||
internal D_Entity *
|
||||
@@ -1321,7 +1290,6 @@ d_entity_alloc(D_Entity *parent, D_EntityKind kind)
|
||||
|
||||
// rjf: dirtify caches
|
||||
d_state->kind_alloc_gens[kind] += 1;
|
||||
d_entity_notify_mutation(entity);
|
||||
|
||||
// rjf: log
|
||||
LogInfoNamedBlockF("new_entity")
|
||||
@@ -1339,7 +1307,6 @@ d_entity_mark_for_deletion(D_Entity *entity)
|
||||
if(!d_entity_is_nil(entity))
|
||||
{
|
||||
entity->flags |= D_EntityFlag_MarkedForDeletion;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1409,10 +1376,6 @@ d_entity_change_parent(D_Entity *entity, D_Entity *old_parent, D_Entity *new_par
|
||||
entity->parent = new_parent;
|
||||
|
||||
// rjf: notify
|
||||
d_entity_notify_mutation(entity);
|
||||
d_entity_notify_mutation(new_parent);
|
||||
d_entity_notify_mutation(old_parent);
|
||||
d_entity_notify_mutation(prev_child);
|
||||
d_state->kind_alloc_gens[entity->kind] += 1;
|
||||
}
|
||||
|
||||
@@ -1426,7 +1389,6 @@ d_entity_equip_txt_pt(D_Entity *entity, TxtPt point)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->text_point = point;
|
||||
entity->flags |= D_EntityFlag_HasTextPoint;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1437,7 +1399,6 @@ d_entity_equip_entity_handle(D_Entity *entity, D_Handle handle)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->entity_handle = handle;
|
||||
entity->flags |= D_EntityFlag_HasEntityHandle;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1446,7 +1407,6 @@ d_entity_equip_disabled(D_Entity *entity, B32 value)
|
||||
d_require_entity_nonnil(entity, return);
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->disabled, .guard_entity = entity);
|
||||
entity->disabled = value;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1457,7 +1417,6 @@ d_entity_equip_u64(D_Entity *entity, U64 u64)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->u64 = u64;
|
||||
entity->flags |= D_EntityFlag_HasU64;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1478,7 +1437,6 @@ d_entity_equip_color_hsva(D_Entity *entity, Vec4F32 hsva)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->color_hsva = hsva;
|
||||
entity->flags |= D_EntityFlag_HasColor;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1487,7 +1445,6 @@ d_entity_equip_cfg_src(D_Entity *entity, D_CfgSrc cfg_src)
|
||||
d_require_entity_nonnil(entity, return);
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->cfg_src, .guard_entity = entity);
|
||||
entity->cfg_src = cfg_src;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1496,7 +1453,6 @@ d_entity_equip_timestamp(D_Entity *entity, U64 timestamp)
|
||||
d_require_entity_nonnil(entity, return);
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->timestamp, .guard_entity = entity);
|
||||
entity->timestamp = timestamp;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
//- rjf: control layer correllation equipment
|
||||
@@ -1509,7 +1465,6 @@ d_entity_equip_ctrl_machine_id(D_Entity *entity, CTRL_MachineID machine_id)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->ctrl_machine_id = machine_id;
|
||||
entity->flags |= D_EntityFlag_HasCtrlMachineID;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1520,7 +1475,6 @@ d_entity_equip_ctrl_handle(D_Entity *entity, DMN_Handle handle)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->ctrl_handle = handle;
|
||||
entity->flags |= D_EntityFlag_HasCtrlHandle;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1531,7 +1485,6 @@ d_entity_equip_arch(D_Entity *entity, Architecture arch)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->arch = arch;
|
||||
entity->flags |= D_EntityFlag_HasArch;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1542,7 +1495,6 @@ d_entity_equip_ctrl_id(D_Entity *entity, U32 id)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->ctrl_id = id;
|
||||
entity->flags |= D_EntityFlag_HasCtrlID;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1553,7 +1505,6 @@ d_entity_equip_stack_base(D_Entity *entity, U64 stack_base)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->stack_base = stack_base;
|
||||
entity->flags |= D_EntityFlag_HasStackBase;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1564,7 +1515,6 @@ d_entity_equip_vaddr_rng(D_Entity *entity, Rng1U64 range)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->vaddr_rng = range;
|
||||
entity->flags |= D_EntityFlag_HasVAddrRng;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1575,7 +1525,6 @@ d_entity_equip_vaddr(D_Entity *entity, U64 vaddr)
|
||||
d_state_delta_history_push_struct_delta(d_state_delta_history(), &entity->flags, .guard_entity = entity);
|
||||
entity->vaddr = vaddr;
|
||||
entity->flags |= D_EntityFlag_HasVAddr;
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
//- rjf: name equipment
|
||||
@@ -1597,7 +1546,6 @@ d_entity_equip_name(D_Entity *entity, String8 name)
|
||||
{
|
||||
entity->name = str8_zero();
|
||||
}
|
||||
d_entity_notify_mutation(entity);
|
||||
}
|
||||
|
||||
internal void
|
||||
@@ -1985,18 +1933,14 @@ d_set_thread_freeze_state(D_Entity *thread, B32 frozen)
|
||||
}
|
||||
node->handle = thread_handle;
|
||||
d_handle_list_push_node(&d_state->frozen_threads, node);
|
||||
d_state->entities_mut_soft_halt = 1;
|
||||
}
|
||||
|
||||
// rjf: frozen => not frozen
|
||||
if(is_frozen && !should_be_frozen)
|
||||
{
|
||||
d_state->entities_mut_soft_halt = 1;
|
||||
d_handle_list_remove(&d_state->frozen_threads, already_frozen_node);
|
||||
SLLStackPush(d_state->free_handle_node, already_frozen_node);
|
||||
}
|
||||
|
||||
d_entity_notify_mutation(thread);
|
||||
}
|
||||
|
||||
internal B32
|
||||
@@ -3270,6 +3214,46 @@ d_unwind_from_ctrl_unwind(Arena *arena, DI_Scope *di_scope, D_Entity *process, C
|
||||
////////////////////////////////
|
||||
//~ rjf: Target Controls
|
||||
|
||||
#if !defined(BLAKE2_H)
|
||||
#define HAVE_SSE2
|
||||
#include "third_party/blake2/blake2.h"
|
||||
#include "third_party/blake2/blake2b.c"
|
||||
#endif
|
||||
|
||||
//- rjf: state which parameterizes runs, but can be live-edited -> hash
|
||||
|
||||
internal U128
|
||||
d_hash_from_ctrl_param_state(void)
|
||||
{
|
||||
U128 result = {0};
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
{
|
||||
// rjf: build data strings of all param data
|
||||
String8List strings = {0};
|
||||
{
|
||||
for(D_HandleNode *n = d_state->frozen_threads.first; n != 0; n = n->next)
|
||||
{
|
||||
str8_list_push(scratch.arena, &strings, str8_struct(&n->handle));
|
||||
}
|
||||
D_EntityList bps = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint);
|
||||
for(D_EntityNode *n = bps.first; n != 0; n = n->next)
|
||||
{
|
||||
D_Entity *bp = n->entity;
|
||||
D_Entity *loc = d_entity_child_from_kind(bp, D_EntityKind_Location);
|
||||
str8_list_push(scratch.arena, &strings, loc->name);
|
||||
str8_list_push(scratch.arena, &strings, str8_struct(&loc->text_point));
|
||||
str8_list_push(scratch.arena, &strings, str8_struct(&loc->vaddr));
|
||||
}
|
||||
}
|
||||
|
||||
// rjf: join & hash to produce result
|
||||
String8 string = str8_list_join(scratch.arena, &strings, 0);
|
||||
blake2b((U8 *)&result.u64[0], sizeof(result), string.str, string.size, 0, 0);
|
||||
}
|
||||
scratch_end(scratch);
|
||||
return result;
|
||||
}
|
||||
|
||||
//- rjf: control message dispatching
|
||||
|
||||
internal void
|
||||
@@ -3291,6 +3275,11 @@ d_ctrl_run(D_RunKind run, D_Entity *run_thread, CTRL_RunFlags flags, CTRL_TrapLi
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
|
||||
// rjf: compute hash of all run-parameterization entities, store
|
||||
{
|
||||
d_state->ctrl_last_run_param_state_hash = d_hash_from_ctrl_param_state();
|
||||
}
|
||||
|
||||
// rjf: build run message
|
||||
CTRL_Msg msg = {(run == D_RunKind_Run || run == D_RunKind_Step) ? CTRL_MsgKind_Run : CTRL_MsgKind_SingleStep};
|
||||
{
|
||||
@@ -8506,18 +8495,16 @@ d_end_frame(void)
|
||||
{
|
||||
ProfBeginFunction();
|
||||
|
||||
//- rjf: entity mutation -> soft halt
|
||||
if(d_state->entities_mut_soft_halt)
|
||||
//- rjf: compute state parameterization hash for ctrl runs, if ctrl is running -
|
||||
// if the hash doesn't match the one for the last run, we need to soft-halt and
|
||||
// re-send down the parameterization state
|
||||
if(d_ctrl_targets_running())
|
||||
{
|
||||
d_state->entities_mut_soft_halt = 0;
|
||||
d_cmd(D_CmdKind_SoftHaltRefresh);
|
||||
}
|
||||
|
||||
//- rjf: entity mutation -> send refreshed debug info map
|
||||
if(d_state->entities_mut_dbg_info_map) ProfScope("entity mutation -> send refreshed debug info map")
|
||||
{
|
||||
d_state->entities_mut_dbg_info_map = 0;
|
||||
// TODO(rjf)
|
||||
U128 state_hash = d_hash_from_ctrl_param_state();
|
||||
if(!u128_match(state_hash, d_state->ctrl_last_run_param_state_hash))
|
||||
{
|
||||
d_cmd(D_CmdKind_SoftHaltRefresh);
|
||||
}
|
||||
}
|
||||
|
||||
//- rjf: send messages
|
||||
|
||||
@@ -75,33 +75,23 @@ typedef U32 D_EntityKindFlags;
|
||||
enum
|
||||
{
|
||||
//- rjf: allowed operations
|
||||
D_EntityKindFlag_CanDelete = (1<<8),
|
||||
D_EntityKindFlag_CanFreeze = (1<<9),
|
||||
D_EntityKindFlag_CanEdit = (1<<10),
|
||||
D_EntityKindFlag_CanRename = (1<<11),
|
||||
D_EntityKindFlag_CanEnable = (1<<12),
|
||||
D_EntityKindFlag_CanCondition = (1<<13),
|
||||
D_EntityKindFlag_CanDuplicate = (1<<14),
|
||||
|
||||
//- rjf: mutation -> cascading effects
|
||||
D_EntityKindFlag_LeafMutUserConfig = (1<<0),
|
||||
D_EntityKindFlag_TreeMutUserConfig = (1<<1),
|
||||
D_EntityKindFlag_LeafMutProjectConfig = (1<<2),
|
||||
D_EntityKindFlag_TreeMutProjectConfig = (1<<3),
|
||||
D_EntityKindFlag_LeafMutSoftHalt = (1<<4),
|
||||
D_EntityKindFlag_TreeMutSoftHalt = (1<<5),
|
||||
D_EntityKindFlag_LeafMutDebugInfoMap = (1<<6),
|
||||
D_EntityKindFlag_TreeMutDebugInfoMap = (1<<7),
|
||||
D_EntityKindFlag_CanDelete = (1<<0),
|
||||
D_EntityKindFlag_CanFreeze = (1<<1),
|
||||
D_EntityKindFlag_CanEdit = (1<<2),
|
||||
D_EntityKindFlag_CanRename = (1<<3),
|
||||
D_EntityKindFlag_CanEnable = (1<<4),
|
||||
D_EntityKindFlag_CanCondition = (1<<5),
|
||||
D_EntityKindFlag_CanDuplicate = (1<<6),
|
||||
|
||||
//- rjf: name categorization
|
||||
D_EntityKindFlag_NameIsCode = (1<<15),
|
||||
D_EntityKindFlag_NameIsPath = (1<<16),
|
||||
D_EntityKindFlag_NameIsCode = (1<<7),
|
||||
D_EntityKindFlag_NameIsPath = (1<<8),
|
||||
|
||||
//- rjf: lifetime categorization
|
||||
D_EntityKindFlag_UserDefinedLifetime = (1<<17),
|
||||
D_EntityKindFlag_UserDefinedLifetime = (1<<9),
|
||||
|
||||
//- rjf: serialization
|
||||
D_EntityKindFlag_IsSerializedToConfig = (1<<18),
|
||||
D_EntityKindFlag_IsSerializedToConfig = (1<<10),
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
@@ -1008,8 +998,6 @@ struct D_State
|
||||
D_Entity *entities_free[2]; // [0] -> normal lifetime, not user defined; [1] -> user defined lifetime (& thus undoable)
|
||||
U64 entities_free_count;
|
||||
U64 entities_active_count;
|
||||
B32 entities_mut_soft_halt;
|
||||
B32 entities_mut_dbg_info_map;
|
||||
|
||||
// rjf: entity query caches
|
||||
U64 kind_alloc_gens[D_EntityKind_COUNT];
|
||||
@@ -1052,6 +1040,7 @@ struct D_State
|
||||
D_Handle ctrl_last_run_thread;
|
||||
CTRL_RunFlags ctrl_last_run_flags;
|
||||
CTRL_TrapList ctrl_last_run_traps;
|
||||
U128 ctrl_last_run_param_state_hash;
|
||||
B32 ctrl_is_running;
|
||||
B32 ctrl_soft_halt_issued;
|
||||
Arena *ctrl_msg_arena;
|
||||
@@ -1243,9 +1232,6 @@ internal void d_name_release(String8 string);
|
||||
////////////////////////////////
|
||||
//~ rjf: Entity Stateful Functions
|
||||
|
||||
//- rjf: entity mutation notification codepath
|
||||
internal void d_entity_notify_mutation(D_Entity *entity);
|
||||
|
||||
//- rjf: entity allocation + tree forming
|
||||
internal D_Entity *d_entity_alloc(D_Entity *parent, D_EntityKind kind);
|
||||
internal void d_entity_mark_for_deletion(D_Entity *entity);
|
||||
@@ -1365,6 +1351,9 @@ internal D_Unwind d_unwind_from_ctrl_unwind(Arena *arena, DI_Scope *di_scope, D_
|
||||
////////////////////////////////
|
||||
//~ rjf: Target Controls
|
||||
|
||||
//- rjf: state which parameterizes runs, but can be live-edited -> hash
|
||||
internal U128 d_hash_from_ctrl_param_state(void);
|
||||
|
||||
//- rjf: control message dispatching
|
||||
internal void d_push_ctrl_msg(CTRL_Msg *msg);
|
||||
|
||||
|
||||
@@ -174,37 +174,37 @@ str8_lit_comp("Label"),
|
||||
|
||||
D_EntityKindFlags d_entity_kind_flags_table[31] =
|
||||
{
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 1*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 1*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 1*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (1*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 1*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 1*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 1*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 1*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 1*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 1*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 1*D_EntityKindFlag_NameIsCode | 1*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (1*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 1*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 1*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 1*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 1*D_EntityKindFlag_TreeMutUserConfig | 1*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 1*D_EntityKindFlag_TreeMutUserConfig | 1*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_LeafMutUserConfig | 1*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 1*D_EntityKindFlag_TreeMutUserConfig | 1*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 1*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 1*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 1*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 1*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_LeafMutUserConfig | 0*D_EntityKindFlag_LeafMutProjectConfig | 0*D_EntityKindFlag_LeafMutSoftHalt | 0*D_EntityKindFlag_LeafMutDebugInfoMap | 0*D_EntityKindFlag_TreeMutUserConfig | 0*D_EntityKindFlag_TreeMutProjectConfig | 0*D_EntityKindFlag_TreeMutSoftHalt | 0*D_EntityKindFlag_TreeMutDebugInfoMap | 0*D_EntityKindFlag_NameIsCode | 0*D_EntityKindFlag_NameIsPath | 0*D_EntityKindFlag_UserDefinedLifetime) | 0*D_EntityKindFlag_IsSerializedToConfig,
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (1*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (1*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig),
|
||||
};
|
||||
|
||||
String8 d_cfg_src_string_table[4] =
|
||||
|
||||
@@ -6089,6 +6089,12 @@ df_window_update_and_render(Arena *arena, DF_Window *ws, D_CmdList *cmds)
|
||||
ws->hover_eval_open_t = 0;
|
||||
}
|
||||
|
||||
// rjf: reset focus state if hover eval is not being built
|
||||
if(!build_hover_eval || ws->hover_eval_string.size == 0 || !hover_eval_is_open)
|
||||
{
|
||||
ws->hover_eval_focused = 0;
|
||||
}
|
||||
|
||||
// rjf: build hover eval
|
||||
if(build_hover_eval && ws->hover_eval_string.size != 0 && hover_eval_is_open)
|
||||
DF_Font(DF_FontSlot_Code)
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@
|
||||
// selecting null selection in watch views
|
||||
// [ ] transient view timeout releasing
|
||||
//
|
||||
// [ ] fix selecting hover eval, then hover eval disappearing, causing
|
||||
// [x] fix selecting hover eval, then hover eval disappearing, causing
|
||||
// busted focus, until a new hover eval is opened
|
||||
// [ ] save view column pcts; generalize to being a first-class thing in
|
||||
// DF_View, e.g. by just having a string -> f32 store
|
||||
|
||||
Reference in New Issue
Block a user