mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-13 07:32:23 -07:00
fix ring buffer stomping in async match
This commit is contained in:
+4
-1
@@ -1624,7 +1624,10 @@ di_match_store_section_kind_from_name(DI_MatchStore *store, String8 name, U64 en
|
||||
{
|
||||
U64 unconsumed_size = store->u2m_ring_write_pos - store->u2m_ring_read_pos;
|
||||
U64 available_size = store->u2m_ring_size - unconsumed_size;
|
||||
if(available_size >= sizeof(U64) + name.size)
|
||||
U64 needed_size = sizeof(&node) + sizeof(U64) + sizeof(U64) + name.size;
|
||||
needed_size += 7;
|
||||
needed_size -= needed_size%8;
|
||||
if(available_size >= needed_size)
|
||||
{
|
||||
store->u2m_ring_write_pos += ring_write_struct(store->u2m_ring_base, store->u2m_ring_size, store->u2m_ring_write_pos, &node);
|
||||
store->u2m_ring_write_pos += ring_write_struct(store->u2m_ring_base, store->u2m_ring_size, store->u2m_ring_write_pos, &node->alloc_gen);
|
||||
|
||||
@@ -8893,7 +8893,7 @@ EV_VIEW_RULE_EXPR_EXPAND_RANGE_INFO_FUNCTION_DEF(scheduler_process)
|
||||
E_Expr *expr = e_push_expr(arena, E_ExprKind_LeafOffset, 0);
|
||||
expr->space = rd_eval_space_from_ctrl_entity(thread, RD_EvalSpaceKind_MetaCtrlEntity);
|
||||
expr->mode = E_Mode_Offset;
|
||||
expr->type_key = e_type_key_cons_base(type(CTRL_ThreadMetaEval));;
|
||||
expr->type_key = e_type_key_cons_base(type(CTRL_ThreadMetaEval));
|
||||
info.row_strings[row_expr_idx] = push_str8f(arena, "thread:%S", thread->string);
|
||||
info.row_exprs[row_expr_idx] = expr;
|
||||
info.row_members[row_expr_idx] = &e_member_nil;
|
||||
|
||||
Reference in New Issue
Block a user