dc: fix "dc p" prinitng bogus data
No binary (build failed)
—
(log yok)
| @@ -56,6 +56,12 @@ enum { STACK_SIZE = (COMMON_BUFSIZE - offsetof(struct globals, stack)) / sizeof( | |
| } while (0) | |
| + | static void check_under(void) |
| + | { |
| + | if (pointer == 0) |
| + | bb_error_msg_and_die("stack underflow"); |
| + | } |
| + | |
| static void push(double a) | |
| { | |
| if (pointer >= STACK_SIZE) | |
| @@ -65,8 +71,7 @@ static void push(double a) | |
| static double pop(void) | |
| { | |
| - | if (pointer == 0) |
| - | bb_error_msg_and_die("stack underflow"); |
| + | check_under(); |
| return stack[--pointer]; | |
| } | |
| @@ -187,6 +192,7 @@ static void print_stack_no_pop(void) | |
| static void print_no_pop(void) | |
| { | |
| + | check_under(); |
| print_base(stack[pointer-1]); | |
| } | |