BLI_gsqueue: use size_t for elem_size (was casting all over)

This commit is contained in:
Campbell Barton 2014-06-15 03:48:22 +10:00
parent ea2043eb3a
commit d6287b213b
3 changed files with 11 additions and 11 deletions

@ -36,7 +36,7 @@
typedef struct _GSQueue GSQueue;
GSQueue *BLI_gsqueue_new(int elem_size);
GSQueue *BLI_gsqueue_new(size_t elem_size);
bool BLI_gsqueue_is_empty(GSQueue *gq);
int BLI_gsqueue_size(GSQueue *gq);
void BLI_gsqueue_peek(GSQueue *gq, void *item_r);

@ -45,7 +45,7 @@ struct _GSQueueElem {
struct _GSQueue {
GSQueueElem *head;
GSQueueElem *tail;
int elem_size;
size_t elem_size;
};
/**
@ -54,7 +54,7 @@ struct _GSQueue {
* \param elem_size The size of the structures in the queue.
* \retval The new queue
*/
GSQueue *BLI_gsqueue_new(int elem_size)
GSQueue *BLI_gsqueue_new(size_t elem_size)
{
GSQueue *gq = MEM_mallocN(sizeof(*gq), "gqueue_new");
gq->head = gq->tail = NULL;
@ -94,7 +94,7 @@ int BLI_gsqueue_size(GSQueue *gq)
*/
void BLI_gsqueue_peek(GSQueue *gq, void *item_r)
{
memcpy(item_r, &gq->head[1], (size_t)gq->elem_size);
memcpy(item_r, &gq->head[1], gq->elem_size);
}
/**
@ -115,7 +115,7 @@ void BLI_gsqueue_pop(GSQueue *gq, void *item_r)
gq->head = gq->head->next;
}
if (item_r) memcpy(item_r, &elem[1], (size_t)gq->elem_size);
if (item_r) memcpy(item_r, &elem[1], gq->elem_size);
MEM_freeN(elem);
}
@ -131,11 +131,11 @@ void BLI_gsqueue_push(GSQueue *gq, void *item)
/* compare: prevent events added double in row */
if (!BLI_gsqueue_is_empty(gq)) {
if (0 == memcmp(item, &gq->head[1], (size_t)gq->elem_size))
if (0 == memcmp(item, &gq->head[1], gq->elem_size))
return;
}
elem = MEM_mallocN(sizeof(*elem) + (size_t)gq->elem_size, "gqueue_push");
memcpy(&elem[1], item, (size_t)gq->elem_size);
elem = MEM_mallocN(sizeof(*elem) + gq->elem_size, "gqueue_push");
memcpy(&elem[1], item, gq->elem_size);
elem->next = NULL;
if (BLI_gsqueue_is_empty(gq)) {
@ -155,8 +155,8 @@ void BLI_gsqueue_push(GSQueue *gq, void *item)
*/
void BLI_gsqueue_pushback(GSQueue *gq, void *item)
{
GSQueueElem *elem = MEM_mallocN(sizeof(*elem) + (size_t)gq->elem_size, "gqueue_push");
memcpy(&elem[1], item, (size_t)gq->elem_size);
GSQueueElem *elem = MEM_mallocN(sizeof(*elem) + gq->elem_size, "gqueue_push");
memcpy(&elem[1], item, gq->elem_size);
elem->next = gq->head;
if (BLI_gsqueue_is_empty(gq)) {

@ -1639,7 +1639,7 @@ static void adjust_offsets(BevelParams *bp)
bv->visited = false;
}
q = BLI_gsqueue_new((int)sizeof(BevVert *));
q = BLI_gsqueue_new(sizeof(BevVert *));
/* the following loop terminates because at least one node is visited each time */
for (;;) {
/* look for root of a connected component in search graph */