BLI_stack: use strict flags

also use size_t, rename BLI_stack_empty
This commit is contained in:
Campbell Barton 2014-06-28 23:07:32 +10:00
parent c0c75ff1ac
commit dcc361708c
3 changed files with 14 additions and 12 deletions

@ -31,7 +31,7 @@
typedef struct BLI_Stack BLI_Stack;
/* Create a new homogeneous stack with elements of 'elem_size' bytes */
BLI_Stack *BLI_stack_new(int elem_size, const char *description);
BLI_Stack *BLI_stack_new(size_t elem_size, const char *description);
/* Free the stack's data and the stack itself */
void BLI_stack_free(BLI_Stack *stack);
@ -49,6 +49,6 @@ void BLI_stack_push(BLI_Stack *stack, void *src);
void BLI_stack_pop(BLI_Stack *stack, void *dst);
/* Returns true if the stack is empty, false otherwise */
int BLI_stack_empty(const BLI_Stack *stack);
bool BLI_stack_is_empty(const BLI_Stack *stack);
#endif

@ -28,21 +28,23 @@
#include <string.h>
#include <stdlib.h> /* abort() */
#include "BLI_stack.h" /* own include */
#include "BLI_utildefines.h"
#include "MEM_guardedalloc.h"
#include "BLI_stack.h" /* own include */
#include "BLI_strict_flags.h"
struct BLI_Stack {
void *data;
int totelem;
int maxelem;
size_t totelem;
size_t maxelem;
int elem_size;
size_t elem_size;
};
BLI_Stack *BLI_stack_new(int elem_size, const char *description)
BLI_Stack *BLI_stack_new(size_t elem_size, const char *description)
{
BLI_Stack *stack = MEM_callocN(sizeof(*stack), description);
@ -74,11 +76,11 @@ void BLI_stack_push(BLI_Stack *stack, void *src)
* number of elements */
stack->maxelem = 32;
stack->data = MEM_mallocN((stack->elem_size *
stack->maxelem), AT);
stack->maxelem), __func__);
}
else {
/* Double stack size */
int maxelem = stack->maxelem + stack->maxelem;
size_t maxelem = stack->maxelem + stack->maxelem;
/* Check for overflow */
BLI_assert(maxelem > stack->maxelem);
stack->data = MEM_reallocN(stack->data,
@ -104,7 +106,7 @@ void BLI_stack_pop(BLI_Stack *stack, void *dst)
}
}
int BLI_stack_empty(const BLI_Stack *stack)
bool BLI_stack_is_empty(const BLI_Stack *stack)
{
return stack->totelem == 0;
}

@ -732,7 +732,7 @@ static EMat *build_edge_mats(const MVertSkin *vs,
}
}
while (!BLI_stack_empty(stack)) {
while (!BLI_stack_is_empty(stack)) {
build_emats_stack(stack, visited_e, emat, emap, medge, vs, mvert);
}