Commit Graph

6 Commits

Author SHA1 Message Date
Quantum
e6df0acad9 [common] vector: eliminate double allocation when possible
This commit creates two constructor/destructor pairs for vector:
* vector_alloc/vector_free dynamically allocates the vector itself
* vector_create/vector_destroy uses existing Vector objects
2021-08-28 19:17:15 +10:00
Quantum
ba527761ef [common] vector: inline common operations 2021-08-28 19:17:15 +10:00
Quantum
53b4b4818b [common] vector: allow inplace construction with vector_push
This makes vector_push return a pointer to the pushed element.

It also allows the user to push a NULL pointer, which means allocating the
memory for the element but do not copy anything into it.
2021-08-24 22:10:36 +10:00
Quantum
07d3d6cbe7 [common] vector: implement a clear operation 2021-08-24 22:10:36 +10:00
Quantum
b71838a530 [common] vector: allow vector_free to be used with NULL
This is done for consistency with free.
2021-08-24 22:10:36 +10:00
Quantum
24e0343156 [common] vector: add new data structure 2021-08-22 21:36:13 +10:00