Skip to content

Commit 1277c57

Browse files
committed
COMMON: code cleanup
1 parent b0cf981 commit 1277c57

File tree

1 file changed

+36
-48
lines changed

1 file changed

+36
-48
lines changed

src/common/proc.c

Lines changed: 36 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#include <limits.h>
1616
#include <dirent.h>
1717

18+
#define MAX_PARAM 8
19+
1820
/*
1921
* returns the last-modified time of the file
2022
*
@@ -117,10 +119,8 @@ int sys_search_path(const char *path, const char *file, char *retbuf) {
117119
* ip - expression's address
118120
*/
119121
void exec_usefunc(var_t *var, bcip_t ip) {
120-
var_t *old_x;
121-
122122
// save X
123-
old_x = v_clone(tvar[SYSVAR_X]);
123+
var_t *old_x = v_clone(tvar[SYSVAR_X]);
124124

125125
// run
126126
v_set(tvar[SYSVAR_X], var);
@@ -142,11 +142,9 @@ void exec_usefunc(var_t *var, bcip_t ip) {
142142
* ip - expression's address
143143
*/
144144
void exec_usefunc2(var_t *var1, var_t *var2, bcip_t ip) {
145-
var_t *old_x, *old_y;
146-
147145
// save X
148-
old_x = v_clone(tvar[SYSVAR_X]);
149-
old_y = v_clone(tvar[SYSVAR_Y]);
146+
var_t *old_x = v_clone(tvar[SYSVAR_X]);
147+
var_t *old_y = v_clone(tvar[SYSVAR_Y]);
150148

151149
// run
152150
v_set(tvar[SYSVAR_X], var1);
@@ -261,13 +259,12 @@ void logprint_var(var_t *v) {
261259
* skip parameter
262260
*/
263261
void par_skip() {
264-
byte exitf = 0, code;
262+
byte exitf = 0;
265263
uint32_t len;
266264
int level = 0;
267265

268266
do {
269-
code = code_peek();
270-
switch (code) {
267+
switch (code_peek()) {
271268
case kwTYPE_INT: // integer
272269
prog_ip += OS_INTSZ + 1;
273270
break;
@@ -313,15 +310,17 @@ void par_skip() {
313310
case kwTYPE_LINE:
314311
case kwTYPE_EOC:
315312
case kwUSE:
316-
if (level != 0)
313+
if (level != 0) {
317314
rt_raise("Block error!");
315+
}
318316
exitf = 1;
319317
break;
320318
case kwTYPE_SEP:
321-
if (level <= 0)
319+
if (level <= 0) {
322320
exitf = 1;
323-
else
321+
} else {
324322
prog_ip += 2;
323+
}
325324
break;
326325
default:
327326
prog_ip++;
@@ -333,10 +332,7 @@ void par_skip() {
333332
* get next parameter as var_t
334333
*/
335334
void par_getvar(var_t *var) {
336-
byte code;
337-
338-
code = code_peek();
339-
switch (code) {
335+
switch (code_peek()) {
340336
case kwTYPE_LINE:
341337
case kwTYPE_EOC:
342338
case kwTYPE_SEP:
@@ -352,11 +348,9 @@ void par_getvar(var_t *var) {
352348
* get next parameter as var_t/array
353349
*/
354350
var_t *par_getvarray() {
355-
byte code;
356351
var_t *var;
357352

358-
code = code_peek();
359-
switch (code) {
353+
switch (code_peek()) {
360354
case kwTYPE_LINE:
361355
case kwTYPE_EOC:
362356
case kwTYPE_SEP:
@@ -392,10 +386,7 @@ var_t *par_getvar_ptr() {
392386
* get next parameter as var_t
393387
*/
394388
void par_getstr(var_t *var) {
395-
byte code;
396-
397-
code = code_peek();
398-
switch (code) {
389+
switch (code_peek()) {
399390
case kwTYPE_LINE:
400391
case kwTYPE_EOC:
401392
case kwTYPE_SEP:
@@ -417,11 +408,10 @@ void par_getstr(var_t *var) {
417408
*/
418409
var_int_t par_getint() {
419410
var_t var;
420-
var_int_t i;
421411

422412
v_init(&var);
423413
par_getvar(&var);
424-
i = v_getint(&var);
414+
var_int_t i = v_getint(&var);
425415
v_free(&var);
426416

427417
return i;
@@ -432,11 +422,10 @@ var_int_t par_getint() {
432422
*/
433423
var_num_t par_getnum() {
434424
var_t var;
435-
var_num_t f;
436425

437426
v_init(&var);
438427
par_getvar(&var);
439-
f = v_getval(&var);
428+
var_num_t f = v_getval(&var);
440429
v_free(&var);
441430

442431
return f;
@@ -504,15 +493,10 @@ var_int_t par_getval(var_int_t def) {
504493
* returns the separator
505494
*/
506495
int par_getsep() {
507-
int last_op;
508-
byte code;
509-
510-
code = code_peek();
511-
switch (code) {
496+
switch (code_peek()) {
512497
case kwTYPE_SEP:
513498
code_skipnext();
514-
last_op = code_getnext();
515-
return last_op;
499+
return code_getnext();
516500
default:
517501
err_missing_sep();
518502
};
@@ -907,27 +891,23 @@ void par_freepartable(par_t **ptable_pp, int pcount) {
907891
* IF THERE IS NO ERROR, CALL TO par_freepartable IS NOT NEEDED
908892
*/
909893
int par_getpartable(par_t **ptable_pp, const char *valid_sep) {
910-
byte ready, last_sep = 0;
911-
par_t *ptable;
912894
bcip_t ofs;
913895
char vsep[8];
896+
897+
// initialize
914898
var_t *par = NULL;
899+
byte last_sep = 0;
915900
int pcount = 0;
916-
917-
/*
918-
* initialize
919-
*/
920-
ptable = *ptable_pp = malloc(sizeof(par_t) * 256);
901+
par_t *ptable = *ptable_pp = malloc(sizeof(par_t) * MAX_PARAM);
921902

922903
if (valid_sep) {
923904
strlcpy(vsep, valid_sep, sizeof(vsep));
924905
} else {
925906
strlcpy(vsep, ",", sizeof(vsep));
926907
}
927-
/*
928-
* start
929-
*/
930-
ready = 0;
908+
909+
// start
910+
byte ready = 0;
931911
do {
932912
switch (code_peek()) {
933913
case kwTYPE_EOC:
@@ -964,7 +944,11 @@ int par_getpartable(par_t **ptable_pp, const char *valid_sep) {
964944
if (code_isvar()) {
965945
// push parameter
966946
ptable[pcount].var = code_getvarptr();
967-
pcount++;
947+
if (++pcount == MAX_PARAM) {
948+
par_freepartable(ptable_pp, pcount);
949+
err_parfmt(__FILE__);
950+
return -1;
951+
}
968952
break;
969953
}
970954
// Its no a single variable, its an expression
@@ -980,7 +964,11 @@ int par_getpartable(par_t **ptable_pp, const char *valid_sep) {
980964
// push parameter
981965
ptable[pcount].var = par;
982966
ptable[pcount].flags |= PAR_BYVAL;
983-
pcount++;
967+
if (++pcount == MAX_PARAM) {
968+
par_freepartable(ptable_pp, pcount);
969+
err_parfmt(__FILE__);
970+
return -1;
971+
}
984972
} else {
985973
v_free(par);
986974
v_detach(par);

0 commit comments

Comments
 (0)