forked from bartvdbraak/blender
BLI_stack: use strict flags
also use size_t, rename BLI_stack_empty
This commit is contained in:
parent
c0c75ff1ac
commit
dcc361708c
@ -31,7 +31,7 @@
|
|||||||
typedef struct BLI_Stack BLI_Stack;
|
typedef struct BLI_Stack BLI_Stack;
|
||||||
|
|
||||||
/* Create a new homogeneous stack with elements of 'elem_size' bytes */
|
/* 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 */
|
/* Free the stack's data and the stack itself */
|
||||||
void BLI_stack_free(BLI_Stack *stack);
|
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);
|
void BLI_stack_pop(BLI_Stack *stack, void *dst);
|
||||||
|
|
||||||
/* Returns true if the stack is empty, false otherwise */
|
/* 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
|
#endif
|
||||||
|
@ -28,21 +28,23 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h> /* abort() */
|
#include <stdlib.h> /* abort() */
|
||||||
|
|
||||||
#include "BLI_stack.h" /* own include */
|
|
||||||
|
|
||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
#include "MEM_guardedalloc.h"
|
#include "MEM_guardedalloc.h"
|
||||||
|
|
||||||
|
#include "BLI_stack.h" /* own include */
|
||||||
|
|
||||||
|
#include "BLI_strict_flags.h"
|
||||||
|
|
||||||
struct BLI_Stack {
|
struct BLI_Stack {
|
||||||
void *data;
|
void *data;
|
||||||
|
|
||||||
int totelem;
|
size_t totelem;
|
||||||
int maxelem;
|
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);
|
BLI_Stack *stack = MEM_callocN(sizeof(*stack), description);
|
||||||
|
|
||||||
@ -74,11 +76,11 @@ void BLI_stack_push(BLI_Stack *stack, void *src)
|
|||||||
* number of elements */
|
* number of elements */
|
||||||
stack->maxelem = 32;
|
stack->maxelem = 32;
|
||||||
stack->data = MEM_mallocN((stack->elem_size *
|
stack->data = MEM_mallocN((stack->elem_size *
|
||||||
stack->maxelem), AT);
|
stack->maxelem), __func__);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* Double stack size */
|
/* Double stack size */
|
||||||
int maxelem = stack->maxelem + stack->maxelem;
|
size_t maxelem = stack->maxelem + stack->maxelem;
|
||||||
/* Check for overflow */
|
/* Check for overflow */
|
||||||
BLI_assert(maxelem > stack->maxelem);
|
BLI_assert(maxelem > stack->maxelem);
|
||||||
stack->data = MEM_reallocN(stack->data,
|
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;
|
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);
|
build_emats_stack(stack, visited_e, emat, emap, medge, vs, mvert);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user