mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 05:48:40 +00:00
only submit empty ctrl process memory artifacts if we have no other history; only retry on mem gen tears & valid ranges
This commit is contained in:
+15
-2
@@ -6077,17 +6077,30 @@ ctrl_memory_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out)
|
|||||||
content_key.id.u128[0] = u128_hash_from_str8(key);
|
content_key.id.u128[0] = u128_hash_from_str8(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- rjf: read successful -> submit to hash store
|
//- rjf: determine if we have any history for this key
|
||||||
|
B32 key_has_history = 0;
|
||||||
|
{
|
||||||
|
U128 last_hash = c_hash_from_key(content_key, 0);
|
||||||
|
if(!u128_match(last_hash, u128_zero()))
|
||||||
|
{
|
||||||
|
key_has_history = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//- rjf: read successful, OR we have no history -> submit to hash store
|
||||||
U128 hash = {0};
|
U128 hash = {0};
|
||||||
if(range_size != 0 && pre_read_mem_gen == post_read_mem_gen)
|
if((zero_terminated_size > 0 || !key_has_history) && range_size != 0 && pre_read_mem_gen == post_read_mem_gen)
|
||||||
{
|
{
|
||||||
hash = c_submit_data(content_key, &range_arena, str8((U8*)range_base, zero_terminated_size));
|
hash = c_submit_data(content_key, &range_arena, str8((U8*)range_base, zero_terminated_size));
|
||||||
}
|
}
|
||||||
else if(range_arena != 0)
|
else if(range_arena != 0)
|
||||||
{
|
{
|
||||||
arena_release(range_arena);
|
arena_release(range_arena);
|
||||||
|
if(pre_read_mem_gen != post_read_mem_gen && range_size != 0)
|
||||||
|
{
|
||||||
retry_out[0] = 1;
|
retry_out[0] = 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//- rjf: wakeup on new reads
|
//- rjf: wakeup on new reads
|
||||||
if(!u128_match(u128_zero(), hash))
|
if(!u128_match(u128_zero(), hash))
|
||||||
|
|||||||
Reference in New Issue
Block a user