fix di2 successful search continuity

This commit is contained in:
Ryan Fleury
2025-10-01 15:46:42 -07:00
parent 7707ba1d60
commit 24670e3095
2 changed files with 17 additions and 2 deletions
+4
View File
@@ -230,6 +230,10 @@ struct RD_ViewState
U8 query_buffer[KB(1)];
U64 query_string_size;
// rjf: last successful query string state
U8 last_successful_query_buffer[KB(1)];
U64 last_successful_query_string_size;
// rjf: contents are focused (disables query focus)
B32 contents_are_focused;
};
+13 -2
View File
@@ -1660,12 +1660,22 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(debug_info_table)
if(section != RDI_SectionKind_NULL)
{
U64 endt_us = rd_state->frame_eval_memread_endt_us;
//- rjf: query all filtered items from dbgi searching system
U128 fuzzy_search_key = {d_hash_from_string(str8_struct(&rd_regs()->view)), (U64)section};
accel->section = section;
accel->items = di2_search_item_array_from_target_query(rd_state->frame_access, section, filter, endt_us);
RD_ViewState *vs = rd_view_state_from_cfg(rd_cfg_from_id(rd_regs()->view));
if(accel->items.count == 0)
{
String8 last_query = str8(vs->last_successful_query_buffer, vs->last_successful_query_string_size);
accel->items = di2_search_item_array_from_target_query(rd_state->frame_access, section, last_query, endt_us);
}
else
{
vs->last_successful_query_string_size = Min(sizeof(vs->last_successful_query_buffer), filter.size);
MemoryCopy(vs->last_successful_query_buffer, filter.str, vs->last_successful_query_string_size);
}
}
E_TypeExpandInfo info = {accel, accel->items.count};
scratch_end(scratch);
return info;
@@ -1796,6 +1806,7 @@ E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_DEF(debug_info_table)
hash = u64_hash_from_seed_str8(hash, str8_struct(&accel->items.v[num-1].key.u64[0]));
hash = u64_hash_from_seed_str8(hash, str8_struct(&accel->items.v[num-1].key.u64[1]));
hash = u64_hash_from_seed_str8(hash, str8_struct(&accel->items.v[num-1].idx));
id = hash;
}
return id;
}