Fix bugs in bc_parse_pushIndex()
diff --git a/src/bc/parse.c b/src/bc/parse.c
index b0d9b5e..713b587 100644
--- a/src/bc/parse.c
+++ b/src/bc/parse.c
@@ -24,6 +24,7 @@
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
+#include <limits.h>
#include <data.h>
#include <lex.h>
@@ -225,7 +226,7 @@
while (idx) {
nums[amt] = (uint8_t) idx;
idx &= ~(0xFF);
- idx >>= sizeof(uint8_t);
+ idx >>= sizeof(uint8_t) * CHAR_BIT;
++amt;
}
@@ -234,7 +235,7 @@
if (status) return status;
while (!status && i < amt) {
- status = bc_vec_pushByte(code, nums[idx]);
+ status = bc_vec_pushByte(code, nums[i]);
++i;
}