Add Set AST Constructor
[satune.git] / src / vector.h
index 623c190f47edb807ae45884e8757809540b84182..d131a275d46eae38d9f26664b32d7511d11a09d3 100644 (file)
        typedef struct Vector ## name Vector ## name;                                                                                                   \
        Vector ## name * allocVector ## name(uint capacity);                                                                    \
        Vector ## name * allocDefVector ## name();                                                                                                              \
-       Vector ## name * allocVectorArray ## name(type * array, uint capacity); \
+       Vector ## name * allocVectorArray ## name(uint capacity, type * array); \
        void pushVector ## name(Vector ## name *vector, type item);                                             \
        type getVector ## name(Vector ## name *vector, uint index);                                             \
        void setVector ## name(Vector ## name *vector, uint index, type item); \
        uint getSizeVector ##name(Vector ##name *vector);                                                                                       \
-       void freeVector ##name(Vector ##name *vector);
+       void deleteVector ##name(Vector ##name *vector);                                                                                                \
+       void clearVector ##name(Vector ## name *vector);
 
 #define VectorImpl(name, type, defcap)                                                                                                                                 \
        Vector ## name * allocDefVector ## name() {                                                                                                             \
        uint getSizeVector ## name(Vector ## name *vector) {                                                                    \
                return vector->size;                                                                                                                                                                                            \
        }                                                                                                                                                                                                                                                                                       \
-       void freeVector ##name(Vector ##name *vector) {                                                                                         \
+       void deleteVector ##name(Vector ##name *vector) {                                                                                       \
                ourfree(vector->array);                                                                                                                                                                                 \
                ourfree(vector);                                                                                                                                                                                                                \
+       }                                                                                                                                                                                                                                                                                       \
+       void clearVector ##name(Vector ## name *vector) {                                                                                       \
+               vector->size=0;                                                                                                                                                                                                                 \
        }
 #endif