X-Git-Url: https://secure.softndesign.org/git/?a=blobdiff_plain;f=program.c;h=dc433aa57ec969f2111aae27f46c526e325cdf73;hb=1546a0b59e357985fb0588daf01a8af8ecbd9412;hp=e8cd2d1301379c1f6efffebafaa7985b258f67bf;hpb=e952523a06b81e8915751bdcb01ca87aad06ce1c;p=calc.git diff --git a/program.c b/program.c index e8cd2d1..dc433aa 100644 --- a/program.c +++ b/program.c @@ -100,17 +100,13 @@ double call (int id, int nbargs, element_t **args) delelement (elements); /* clean arguments */ - if (argument) { - free_tab (argument); - } + free_tab (argument); argument = NULL; - if (nbargs > 0) { - def (nbargs, args); - } /* restore context */ backup_ws (programs[n]); restore_ws (tmp); + free_ws (tmp); return ret; } @@ -167,13 +163,10 @@ void del (int id) free_ws (programs[n]); /* remove entry */ - workspace_t **tmp = (workspace_t **) callocordie (--nb_programs, sizeof (workspace_t *)); - if (n != 0) { - memcpy (tmp, programs, (n - 1) * sizeof (workspace_t)); - } - if (n != nb_programs) { - memcpy (tmp + n - 1, programs + n, (nb_programs - n) * sizeof (workspace_t)); - } + workspace_t **tmp = (workspace_t **) callocordie (nb_programs - 1, sizeof (workspace_t *)); + memcpy (tmp, programs, n * sizeof (workspace_t *)); + memcpy (tmp + n, programs + n + 1, (nb_programs - n - 1) * sizeof (workspace_t *)); + nb_programs--; free (programs); programs = tmp; }