mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 13:28:40 +00:00
fix di2 successful search continuity
This commit is contained in:
@@ -230,6 +230,10 @@ struct RD_ViewState
|
|||||||
U8 query_buffer[KB(1)];
|
U8 query_buffer[KB(1)];
|
||||||
U64 query_string_size;
|
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)
|
// rjf: contents are focused (disables query focus)
|
||||||
B32 contents_are_focused;
|
B32 contents_are_focused;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1660,12 +1660,22 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(debug_info_table)
|
|||||||
if(section != RDI_SectionKind_NULL)
|
if(section != RDI_SectionKind_NULL)
|
||||||
{
|
{
|
||||||
U64 endt_us = rd_state->frame_eval_memread_endt_us;
|
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};
|
U128 fuzzy_search_key = {d_hash_from_string(str8_struct(&rd_regs()->view)), (U64)section};
|
||||||
accel->section = section;
|
accel->section = section;
|
||||||
accel->items = di2_search_item_array_from_target_query(rd_state->frame_access, section, filter, endt_us);
|
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};
|
E_TypeExpandInfo info = {accel, accel->items.count};
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
return info;
|
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[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].key.u64[1]));
|
||||||
hash = u64_hash_from_seed_str8(hash, str8_struct(&accel->items.v[num-1].idx));
|
hash = u64_hash_from_seed_str8(hash, str8_struct(&accel->items.v[num-1].idx));
|
||||||
|
id = hash;
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user