Made push-back use realloc again.

This commit is contained in:
Erik Svedäng 2017-10-12 21:40:02 +02:00
parent 57f1c401a9
commit 02af9ffb38
2 changed files with 18 additions and 8 deletions

View File

@ -8,4 +8,13 @@
(use Char)
(use Bool)
(defn print-stack [s]
(println &(Array.str s)))
(defn main []
(let [stack0 (range 1 5 1)
stack1 (push-back stack0 6)]
(do
;;(print-stack &stack0)
(print-stack &stack1)
)))

View File

@ -132,10 +132,10 @@ templatePushBack =
(toTemplate $ unlines
["$DECL { "
," a.len++;"
," void *pre = a.data;"
," a.data = CARP_MALLOC(sizeof($a) * a.len);"
," CARP_FREE(pre);"
--a.data = realloc(a.data, sizeof($a) * a.len);"
-- ," void *pre = a.data;"
-- ," a.data = CARP_MALLOC(sizeof($a) * a.len);"
-- ," CARP_FREE(pre);"
," a.data = realloc(a.data, sizeof($a) * a.len);"
," (($a*)a.data)[a.len - 1] = value;"
," return a;"
,"}"
@ -152,11 +152,12 @@ templatePopBack =
(toTemplate $ unlines
["$DECL { "
," a.len--;"
-- TODO: Free the element that is removed!!!
," if(a.len > 0) {"
--," a.data = realloc(a.data, sizeof($a) * a.len);"
," void *pre = a.data;"
," a.data = CARP_MALLOC(sizeof($a) * a.len);"
," CARP_FREE(pre);"
," a.data = realloc(a.data, sizeof($a) * a.len);"
-- ," void *pre = a.data;"
-- ," a.data = CARP_MALLOC(sizeof($a) * a.len);"
-- ," CARP_FREE(pre);"
," }"
," return a;"
,"}"