aboutsummaryrefslogtreecommitdiff
path: root/miscutils
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils')
-rw-r--r--miscutils/bc.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index f936ad6f3..3d53db778 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -1069,8 +1069,12 @@ static void bc_vec_expand(BcVec *v, size_t req)
1069 } 1069 }
1070} 1070}
1071 1071
1072#define bc_vec_pop(v) (bc_vec_npop((v), 1)) 1072static void bc_vec_pop(BcVec *v)
1073#define bc_vec_top(v) (bc_vec_item_rev((v), 0)) 1073{
1074 v->len--;
1075 if (v->dtor)
1076 v->dtor(v->v + (v->size * v->len));
1077}
1074 1078
1075static void bc_vec_npop(BcVec *v, size_t n) 1079static void bc_vec_npop(BcVec *v, size_t n)
1076{ 1080{
@@ -1094,8 +1098,6 @@ static void bc_vec_push(BcVec *v, const void *data)
1094 v->len += 1; 1098 v->len += 1;
1095} 1099}
1096 1100
1097#define bc_parse_push(p, i) bc_vec_pushByte(&(p)->func->code, (char) (i))
1098
1099static void bc_vec_pushByte(BcVec *v, char data) 1101static void bc_vec_pushByte(BcVec *v, char data)
1100{ 1102{
1101 bc_vec_push(v, &data); 1103 bc_vec_push(v, &data);
@@ -1159,6 +1161,11 @@ static void *bc_vec_item_rev(const BcVec *v, size_t idx)
1159 return v->v + v->size * (v->len - idx - 1); 1161 return v->v + v->size * (v->len - idx - 1);
1160} 1162}
1161 1163
1164static void *bc_vec_top(const BcVec *v)
1165{
1166 return v->v + v->size * (v->len - 1);
1167}
1168
1162static void bc_vec_free(void *vec) 1169static void bc_vec_free(void *vec)
1163{ 1170{
1164 BcVec *v = (BcVec *) vec; 1171 BcVec *v = (BcVec *) vec;
@@ -3530,6 +3537,8 @@ static void bc_parse_addFunc(BcParse *p, char *name, size_t *idx)
3530 p->func = bc_vec_item(&G.prog.fns, p->fidx); 3537 p->func = bc_vec_item(&G.prog.fns, p->fidx);
3531} 3538}
3532 3539
3540#define bc_parse_push(p, i) bc_vec_pushByte(&(p)->func->code, (char) (i))
3541
3533static void bc_parse_pushName(BcParse *p, char *name) 3542static void bc_parse_pushName(BcParse *p, char *name)
3534{ 3543{
3535 size_t i = 0, len = strlen(name); 3544 size_t i = 0, len = strlen(name);