mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2025-06-25 01:59:21 +08:00
Refactor UnityPrintNumber(), remove unreachable code
Remove what looks like an overflow check. 'divisor' cannot overflow since it is the same type as 'number' and cannot be greater.
This commit is contained in:
36
src/unity.c
36
src/unity.c
@ -164,12 +164,9 @@ void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T s
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
/// basically do an itoa using as little ram as possible
|
||||
void UnityPrintNumber(const _U_SINT number_to_print)
|
||||
{
|
||||
_U_UINT divisor = 1;
|
||||
_U_UINT next_divisor;
|
||||
_U_UINT number;
|
||||
_U_UINT number = (_U_UINT)number_to_print;
|
||||
|
||||
if (number_to_print < 0)
|
||||
{
|
||||
@ -177,29 +174,7 @@ void UnityPrintNumber(const _U_SINT number_to_print)
|
||||
UNITY_OUTPUT_CHAR('-');
|
||||
number = (_U_UINT)(-number_to_print);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Non-negative number
|
||||
number = (_U_UINT)number_to_print;
|
||||
}
|
||||
|
||||
// figure out initial divisor
|
||||
while (number / divisor > 9)
|
||||
{
|
||||
next_divisor = divisor * 10;
|
||||
if (next_divisor > divisor)
|
||||
divisor = next_divisor;
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
// now mod and print, then divide divisor
|
||||
do
|
||||
{
|
||||
UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10)));
|
||||
divisor /= 10;
|
||||
}
|
||||
while (divisor > 0);
|
||||
UnityPrintNumberUnsigned(number);
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
@ -207,16 +182,11 @@ void UnityPrintNumber(const _U_SINT number_to_print)
|
||||
void UnityPrintNumberUnsigned(const _U_UINT number)
|
||||
{
|
||||
_U_UINT divisor = 1;
|
||||
_U_UINT next_divisor;
|
||||
|
||||
// figure out initial divisor
|
||||
while (number / divisor > 9)
|
||||
{
|
||||
next_divisor = divisor * 10;
|
||||
if (next_divisor > divisor)
|
||||
divisor = next_divisor;
|
||||
else
|
||||
break;
|
||||
divisor *= 10;
|
||||
}
|
||||
|
||||
// now mod and print, then divide divisor
|
||||
|
Reference in New Issue
Block a user