[PATCH 07/18] programs/winedbg: split print_longlong into print_(s|u)decimal (to mimic print_hex)
Eric Pouech
eric.pouech at gmail.com
Fri Dec 3 09:57:40 CST 2021
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
programs/winedbg/memory.c | 28 ++++++++++++----------------
1 file changed, 12 insertions(+), 16 deletions(-)
diff --git a/programs/winedbg/memory.c b/programs/winedbg/memory.c
index db4060d816a..a0f201e0423 100644
--- a/programs/winedbg/memory.c
+++ b/programs/winedbg/memory.c
@@ -346,21 +346,17 @@ char* memory_offset_to_string(char *str, DWORD64 offset, unsigned mode)
return str;
}
-static void dbg_print_longlong(LONGLONG sv, BOOL is_signed)
+static inline void dbg_print_udecimal(dbg_lguint_t sv)
{
- char tmp[24], *ptr = tmp + sizeof(tmp) - 1;
- ULONGLONG uv, div;
- *ptr = '\0';
- if (is_signed && sv < 0) uv = -sv;
- else { uv = sv; is_signed = FALSE; }
- for (div = 10; uv; div *= 10, uv /= 10)
- *--ptr = '0' + (uv % 10);
- if (ptr == tmp + sizeof(tmp) - 1) *--ptr = '0';
- if (is_signed) *--ptr = '-';
- dbg_printf("%s", ptr);
+ dbg_printf("%I64u", sv);
}
-static void dbg_print_hex(DWORD size, ULONGLONG sv)
+static inline void dbg_print_sdecimal(dbg_lgint_t sv)
+{
+ dbg_printf("%I64d", sv);
+}
+
+static void dbg_print_hex(DWORD size, dbg_lgint_t sv)
{
if (!sv)
dbg_printf("0");
@@ -512,7 +508,7 @@ static void print_typed_basic(const struct dbg_lvalue* lvalue)
fcp->Start += 256;
}
}
- if (!ok) dbg_print_longlong(val_int, TRUE);
+ if (!ok) dbg_print_sdecimal(val_int);
}
break;
default:
@@ -543,11 +539,11 @@ void print_basic(const struct dbg_lvalue* lvalue, char format)
switch (format)
{
case 'x':
- dbg_print_hex(size, (ULONGLONG)res);
+ dbg_print_hex(size, res);
return;
case 'd':
- dbg_print_longlong(res, TRUE);
+ dbg_print_sdecimal(res);
return;
case 'c':
@@ -570,7 +566,7 @@ void print_basic(const struct dbg_lvalue* lvalue, char format)
}
if (lvalue->type.id == dbg_itype_segptr)
{
- dbg_print_longlong(types_extract_as_lgint(lvalue, NULL, NULL), TRUE);
+ dbg_print_sdecimal(types_extract_as_integer(lvalue));
}
else print_typed_basic(lvalue);
}
More information about the wine-devel
mailing list