mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 05:48:40 +00:00
fix <64-bit integer eval stringification path, to not interpret too many bits
This commit is contained in:
@@ -57,9 +57,11 @@ union E_Value
|
|||||||
U64 u64;
|
U64 u64;
|
||||||
U32 u32;
|
U32 u32;
|
||||||
U16 u16;
|
U16 u16;
|
||||||
|
U8 u8;
|
||||||
S64 s64;
|
S64 s64;
|
||||||
S32 s32;
|
S32 s32;
|
||||||
S32 s16;
|
S16 s16;
|
||||||
|
S8 s8;
|
||||||
F64 f64;
|
F64 f64;
|
||||||
F32 f32;
|
F32 f32;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1292,6 +1292,8 @@ ev_string_from_simple_typed_eval(Arena *arena, EV_StringParams *params, E_Eval e
|
|||||||
{
|
{
|
||||||
digit_group_separator = 0;
|
digit_group_separator = 0;
|
||||||
}
|
}
|
||||||
|
S64 s64 = 0;
|
||||||
|
U64 u64 = 0;
|
||||||
F64 f64 = 0;
|
F64 f64 = 0;
|
||||||
switch(type_kind)
|
switch(type_kind)
|
||||||
{
|
{
|
||||||
@@ -1366,20 +1368,22 @@ ev_string_from_simple_typed_eval(Arena *arena, EV_StringParams *params, E_Eval e
|
|||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
|
||||||
case E_TypeKind_S8:
|
case E_TypeKind_S8: s64 = (S64)eval.value.s8; goto sint_path;
|
||||||
case E_TypeKind_S16:
|
case E_TypeKind_S16: s64 = (S64)eval.value.s16; goto sint_path;
|
||||||
case E_TypeKind_S32:
|
case E_TypeKind_S32: s64 = (S64)eval.value.s32; goto sint_path;
|
||||||
case E_TypeKind_S64:
|
case E_TypeKind_S64: s64 = (S64)eval.value.s64; goto sint_path;
|
||||||
|
sint_path:;
|
||||||
{
|
{
|
||||||
result = str8_from_s64(arena, eval.value.s64, params->radix, params->min_digits, digit_group_separator);
|
result = str8_from_s64(arena, s64, params->radix, params->min_digits, digit_group_separator);
|
||||||
}break;
|
}break;
|
||||||
|
|
||||||
case E_TypeKind_U8:
|
case E_TypeKind_U8: u64 = (U64)eval.value.u8; goto uint_path;
|
||||||
case E_TypeKind_U16:
|
case E_TypeKind_U16: u64 = (U64)eval.value.u16; goto uint_path;
|
||||||
case E_TypeKind_U32:
|
case E_TypeKind_U32: u64 = (U64)eval.value.u32; goto uint_path;
|
||||||
case E_TypeKind_U64:
|
case E_TypeKind_U64: u64 = (U64)eval.value.u64; goto uint_path;
|
||||||
|
uint_path:;
|
||||||
{
|
{
|
||||||
result = str8_from_u64(arena, eval.value.u64, params->radix, params->min_digits, digit_group_separator);
|
result = str8_from_u64(arena, u64, params->radix, params->min_digits, digit_group_separator);
|
||||||
}break;
|
}break;
|
||||||
|
|
||||||
case E_TypeKind_U128:
|
case E_TypeKind_U128:
|
||||||
|
|||||||
@@ -395,6 +395,9 @@ type_coverage_eval_tests(void)
|
|||||||
Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001};
|
Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001};
|
||||||
Basics_Stdint basics_stdint = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001};
|
Basics_Stdint basics_stdint = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001};
|
||||||
|
|
||||||
|
uint32_t a = (1<<31);
|
||||||
|
int32_t b = (1<<31);
|
||||||
|
|
||||||
char string[] = "Hello World!";
|
char string[] = "Hello World!";
|
||||||
char longer_text[] =
|
char longer_text[] =
|
||||||
"Suppose there was some text\n"
|
"Suppose there was some text\n"
|
||||||
|
|||||||
@@ -5072,6 +5072,23 @@ rd_view_ui(Rng2F32 rect)
|
|||||||
//- rjf: handle interactions
|
//- rjf: handle interactions
|
||||||
//
|
//
|
||||||
{
|
{
|
||||||
|
// rjf: hover -> debug log
|
||||||
|
if(DEV_eval_compiler_tooltips)
|
||||||
|
{
|
||||||
|
if(ui_hovering(sig)) UI_Tooltip
|
||||||
|
{
|
||||||
|
String8 text = e_debug_log_from_expr_string(scratch.arena, cell->eval.string);
|
||||||
|
String8List lines = str8_split(scratch.arena, text, (U8 *)"\n", 1, StringSplitFlag_KeepEmpties);
|
||||||
|
for(String8Node *n = lines.first; n != 0; n = n->next)
|
||||||
|
{
|
||||||
|
if(n->string.size != 0)
|
||||||
|
{
|
||||||
|
ui_label(n->string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// rjf: hover -> rich hover cfgs
|
// rjf: hover -> rich hover cfgs
|
||||||
if(ui_hovering(sig) && cell_info.cfg != &rd_nil_cfg)
|
if(ui_hovering(sig) && cell_info.cfg != &rd_nil_cfg)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user