mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-02-21 02:40:56 +00:00
don't use vec_size but _vec_end in _vec_remove, since using it on an empty vector is an error anyway; this causes a warning about vec_pop doing an effect-less memmove so vec_pop now doesn't use vec_remove anymore actually
This commit is contained in:
parent
0983125d2d
commit
03cb670096
1 changed files with 2 additions and 2 deletions
4
gmqcc.h
4
gmqcc.h
|
@ -248,7 +248,7 @@ uint32_t util_crc32(uint32_t crc, const char *data, size_t len);
|
|||
#define _vec_needsgrow(A,N) ((!(A)) || (_vec_end(A) + (N) >= _vec_beg(A)))
|
||||
#define _vec_mightgrow(A,N) (_vec_needsgrow((A), (N)) ? (void)_vec_forcegrow((A),(N)) : (void)0)
|
||||
#define _vec_forcegrow(A,N) _util_vec_grow(((void**)&(A)), (N), sizeof(*(A)))
|
||||
#define _vec_remove(A,S,I,N) (memmove((char*)(A)+(I)*(S),(char*)(A)+((I)+(N))*(S),(S)*(vec_size(A)-(I)-(N))), _vec_end(A)-=(N))
|
||||
#define _vec_remove(A,S,I,N) (memmove((char*)(A)+(I)*(S),(char*)(A)+((I)+(N))*(S),(S)*(_vec_end(A)-(I)-(N))), _vec_end(A)-=(N))
|
||||
void _util_vec_grow(void **a, size_t i, size_t s);
|
||||
/* exposed interface */
|
||||
#define vec_free(A) ((A) ? (mem_d((void*)_vec_raw(A)), (A) = NULL) : 0)
|
||||
|
@ -258,7 +258,7 @@ void _util_vec_grow(void **a, size_t i, size_t s);
|
|||
#define vec_last(A) ((A)[_vec_end(A)-1])
|
||||
#define vec_append(A,N,S) memcpy(vec_add((A), (N)), (S), N * sizeof(*(S)))
|
||||
#define vec_remove(A,I,N) _vec_remove((A), sizeof(*(A)), (I), (N))
|
||||
#define vec_pop(A) vec_remove((A), _vec_end(A)-1, 1)
|
||||
#define vec_pop(A) (_vec_end(A)-=1)
|
||||
/* these are supposed to NOT reallocate */
|
||||
#define vec_shrinkto(A,N) (_vec_end(A) = (N))
|
||||
#define vec_shrinkby(A,N) (_vec_end(A) -= (N))
|
||||
|
|
Loading…
Reference in a new issue