* @brief Generic resizable array.
*/
typedef struct Vector {
- void** datas; ///< Data array of fixed length (reallocated if needed).
+ void* datas; ///< Data array of fixed length (reallocated if needed).
size_t dataSize; ///< Size in bytes of a vector element.
UInt size; ///< Count elements in the vector.
UInt capacity; ///< Current maximal capacity; always larger than size.
* Usage: Vector* vector_new(<Type> type)
*/
#define vector_new(type) \
-{ \
- _vector_new(sizeof(type)); \
-}
+ _vector_new(sizeof(type))
/**
* @brief Copy constructor (shallow copy, ok for basic types).
*/
#define vector_push(vector, data) \
{ \
- typeof((data)) tmp = data; \
- _vector_push(vector,&tmp); \
+ typeof(data) tmp = data; \
+ _vector_push(vector, &tmp); \
}
/**
*/
#define vector_set(vector, index, data) \
{ \
- typeof((data)) tmp = data; \
- _vector_set(vector,index,&tmp); \
+ typeof(data) tmp = data; \
+ _vector_set(vector, index, &tmp); \
}
/**
*/
typedef struct VectorIterator {
Vector* vector; ///< Vector to be iterated.
- void** current; ///< Current vector element.
+ void* current; ///< Current vector element.
} VectorIterator;
/**
*/
#define vectorI_set(vectorI, data) \
{ \
- typeof((data)) tmp = data; \
- _vectorI_set(vectorI,&tmp); \
+ typeof(data) tmp = data; \
+ _vectorI_set(vectorI, &tmp); \
}
/**