#ifndef _SQUTILS_H_\r
#define _SQUTILS_H_\r
\r
+/* clang fix: "error: call to function 'sq_vm_free' that is neither visible in the template definition nor found by argument-dependent lookup" */\r
void *sq_vm_malloc(SQUnsignedInteger size);\r
void *sq_vm_realloc(void *p,SQUnsignedInteger oldsize,SQUnsignedInteger size);\r
void sq_vm_free(void *p,SQUnsignedInteger size);\r
#define SQ_FREE(__ptr,__size) sq_vm_free((__ptr),(__size));\r
#define SQ_REALLOC(__ptr,__oldsize,__size) sq_vm_realloc((__ptr),(__oldsize),(__size));\r
\r
-#define sq_aligning(v) (((size_t)(v) + (SQ_ALIGNMENT-1)) & (~(SQ_ALIGNMENT-1)))\r
-\r
//sqvector mini vector class, supports objects by value\r
template<typename T> class sqvector\r
{\r
}\r
void copy(const sqvector<T>& v)\r
{\r
- if(_size) {\r
- resize(0); //destroys all previous stuff\r
- }\r
- //resize(v._size);\r
- if(v._size > _allocated) {\r
- _realloc(v._size);\r
- }\r
+ resize(v._size);\r
for(SQUnsignedInteger i = 0; i < v._size; i++) {\r
new ((void *)&_vals[i]) T(v._vals[i]);\r
}\r