test
[calc.git] / argument.c
index bda7684e754e813659e1c53fe72b56bb60210331..c8f345f40d4d1c83895492eef5fe00f574a8ca8a 100644 (file)
@@ -1,3 +1,5 @@
+#include <stdio.h>
+
 #include "parser.h"
 #include "tabular.h"
 
@@ -21,10 +23,14 @@ double arg (int n)
 double def (int nbops, element_t **ops)
 {
     int i;
-    argument = resize_tab (argument, nbops);
+    tab_t *new = alloc_tab (nbops);
     for (i = 0; i < nbops; i++) {
-        set_tab (argument, i + 1, evaluate_element (ops[i], 0));
+        double val = evaluate_element (ops[i], 0);
+        VERBOSE (DEBUG, fprintf (stdout, "arg[%d] = %g\n", i + i, val));
+        set_tab (new, i + 1, val);
     }
+    free_tab (argument);
+    argument = new;
     return size_tab (argument);
 }