From eaa65a6b3d1f3c885bd43d3daee87e59634e0867 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 6 Feb 2025 11:26:02 -0800 Subject: [PATCH] raddbg: cast basic type value commits to destination type; ensures numeric things are casted appropriately (fixes f32/f64 value writes) --- src/raddbg/raddbg_core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 35ec78c2..2efb03a5 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -2341,7 +2341,9 @@ rd_commit_eval_value_string(E_Eval dst_eval, String8 string, B32 string_needs_un if((E_TypeKind_FirstBasic <= type_kind && type_kind <= E_TypeKind_LastBasic) || type_kind == E_TypeKind_Enum) { - E_Eval src_eval = e_eval_from_string(scratch.arena, string); + E_Expr *src_expr = e_parse_expr_from_text(scratch.arena, string); + E_Expr *src_expr__casted = e_expr_ref_cast(scratch.arena, type_key, src_expr); + E_Eval src_eval = e_eval_from_expr(scratch.arena, src_expr__casted); commit_data = push_str8_copy(scratch.arena, str8_struct(&src_eval.value)); commit_data.size = Min(commit_data.size, e_type_byte_size_from_key(type_key)); }