diff options
-rw-r--r-- | miscutils/dc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/miscutils/dc.c b/miscutils/dc.c index f94d6fa..9c74172 100644 --- a/miscutils/dc.c +++ b/miscutils/dc.c @@ -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]); } |