use strict flags for lasso, boxpack, gsqueue and quadric's.
for lasso also use unsigned ints rather then shorts for the path length.
This commit is contained in:
@@ -34,8 +34,8 @@
|
|||||||
|
|
||||||
struct rcti;
|
struct rcti;
|
||||||
|
|
||||||
void BLI_lasso_boundbox(struct rcti *rect, const int mcords[][2], const short moves);
|
void BLI_lasso_boundbox(struct rcti *rect, const int mcords[][2], const unsigned int moves);
|
||||||
bool BLI_lasso_is_point_inside(const int mcords[][2], const short moves, const int sx, const int sy, const int error_value);
|
bool BLI_lasso_is_point_inside(const int mcords[][2], const unsigned int moves, const int sx, const int sy, const int error_value);
|
||||||
bool BLI_lasso_is_edge_inside(const int mcords[][2], const short moves, int x0, int y0, int x1, int y1, const int error_value);
|
bool BLI_lasso_is_edge_inside(const int mcords[][2], const unsigned int moves, int x0, int y0, int x1, int y1, const int error_value);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -33,6 +33,9 @@
|
|||||||
# pragma GCC diagnostic error "-Wsign-compare"
|
# pragma GCC diagnostic error "-Wsign-compare"
|
||||||
# pragma GCC diagnostic error "-Wconversion"
|
# pragma GCC diagnostic error "-Wconversion"
|
||||||
# endif
|
# endif
|
||||||
|
# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 /* gcc4.8+ only (behavior changed to ignore globals)*/
|
||||||
|
# pragma GCC diagnostic error "-Wshadow"
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __BLI_STRICT_FLAGS_H__ */
|
#endif /* __BLI_STRICT_FLAGS_H__ */
|
||||||
|
@@ -27,7 +27,9 @@
|
|||||||
#include <stdlib.h> /* for qsort */
|
#include <stdlib.h> /* for qsort */
|
||||||
|
|
||||||
#include "MEM_guardedalloc.h"
|
#include "MEM_guardedalloc.h"
|
||||||
#include "BLI_boxpack2d.h"
|
#include "BLI_strict_flags.h"
|
||||||
|
|
||||||
|
#include "BLI_boxpack2d.h" /* own include */
|
||||||
|
|
||||||
/* BoxPacker for backing 2D rectangles into a square
|
/* BoxPacker for backing 2D rectangles into a square
|
||||||
*
|
*
|
||||||
@@ -169,11 +171,11 @@ void BLI_box_pack_2D(BoxPack *boxarray, const int len, float *tot_width, float *
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Sort boxes, biggest first */
|
/* Sort boxes, biggest first */
|
||||||
qsort(boxarray, len, sizeof(BoxPack), box_areasort);
|
qsort(boxarray, (size_t)len, sizeof(BoxPack), box_areasort);
|
||||||
|
|
||||||
/* add verts to the boxes, these are only used internally */
|
/* add verts to the boxes, these are only used internally */
|
||||||
vert = vertarray = MEM_mallocN(len * 4 * sizeof(BoxVert), "BoxPack Verts");
|
vert = vertarray = MEM_mallocN((size_t)len * 4 * sizeof(BoxVert), "BoxPack Verts");
|
||||||
vertex_pack_indices = MEM_mallocN(len * 3 * sizeof(int), "BoxPack Indices");
|
vertex_pack_indices = MEM_mallocN((size_t)len * 3 * sizeof(int), "BoxPack Indices");
|
||||||
|
|
||||||
for (box = boxarray, box_index = 0, i = 0; box_index < len; box_index++, box++) {
|
for (box = boxarray, box_index = 0, i = 0; box_index < len; box_index++, box++) {
|
||||||
|
|
||||||
@@ -241,7 +243,7 @@ void BLI_box_pack_2D(BoxPack *boxarray, const int len, float *tot_width, float *
|
|||||||
box_width = box->w;
|
box_width = box->w;
|
||||||
box_height = box->h;
|
box_height = box->h;
|
||||||
|
|
||||||
qsort(vertex_pack_indices, verts_pack_len, sizeof(int), vertex_sort);
|
qsort(vertex_pack_indices, (size_t)verts_pack_len, sizeof(int), vertex_sort);
|
||||||
|
|
||||||
/* Pack the box in with the others */
|
/* Pack the box in with the others */
|
||||||
/* sort the verts */
|
/* sort the verts */
|
||||||
@@ -318,7 +320,7 @@ void BLI_box_pack_2D(BoxPack *boxarray, const int len, float *tot_width, float *
|
|||||||
(*tot_height) = max_ff(BOXTOP(box), (*tot_height));
|
(*tot_height) = max_ff(BOXTOP(box), (*tot_height));
|
||||||
|
|
||||||
/* Place the box */
|
/* Place the box */
|
||||||
vert->free &= ~quad_flags[j];
|
vert->free &= (short)~quad_flags[j];
|
||||||
|
|
||||||
switch (j) {
|
switch (j) {
|
||||||
case TR:
|
case TR:
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
#include "BLI_gsqueue.h"
|
#include "BLI_gsqueue.h"
|
||||||
|
#include "BLI_strict_flags.h"
|
||||||
|
|
||||||
typedef struct _GSQueueElem GSQueueElem;
|
typedef struct _GSQueueElem GSQueueElem;
|
||||||
struct _GSQueueElem {
|
struct _GSQueueElem {
|
||||||
@@ -93,7 +94,7 @@ int BLI_gsqueue_size(GSQueue *gq)
|
|||||||
*/
|
*/
|
||||||
void BLI_gsqueue_peek(GSQueue *gq, void *item_r)
|
void BLI_gsqueue_peek(GSQueue *gq, void *item_r)
|
||||||
{
|
{
|
||||||
memcpy(item_r, &gq->head[1], gq->elem_size);
|
memcpy(item_r, &gq->head[1], (size_t)gq->elem_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -114,7 +115,7 @@ void BLI_gsqueue_pop(GSQueue *gq, void *item_r)
|
|||||||
gq->head = gq->head->next;
|
gq->head = gq->head->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item_r) memcpy(item_r, &elem[1], gq->elem_size);
|
if (item_r) memcpy(item_r, &elem[1], (size_t)gq->elem_size);
|
||||||
MEM_freeN(elem);
|
MEM_freeN(elem);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,11 +131,11 @@ void BLI_gsqueue_push(GSQueue *gq, void *item)
|
|||||||
|
|
||||||
/* compare: prevent events added double in row */
|
/* compare: prevent events added double in row */
|
||||||
if (!BLI_gsqueue_is_empty(gq)) {
|
if (!BLI_gsqueue_is_empty(gq)) {
|
||||||
if (0 == memcmp(item, &gq->head[1], gq->elem_size))
|
if (0 == memcmp(item, &gq->head[1], (size_t)gq->elem_size))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
elem = MEM_mallocN(sizeof(*elem) + gq->elem_size, "gqueue_push");
|
elem = MEM_mallocN(sizeof(*elem) + (size_t)gq->elem_size, "gqueue_push");
|
||||||
memcpy(&elem[1], item, gq->elem_size);
|
memcpy(&elem[1], item, (size_t)gq->elem_size);
|
||||||
elem->next = NULL;
|
elem->next = NULL;
|
||||||
|
|
||||||
if (BLI_gsqueue_is_empty(gq)) {
|
if (BLI_gsqueue_is_empty(gq)) {
|
||||||
@@ -154,8 +155,8 @@ void BLI_gsqueue_push(GSQueue *gq, void *item)
|
|||||||
*/
|
*/
|
||||||
void BLI_gsqueue_pushback(GSQueue *gq, void *item)
|
void BLI_gsqueue_pushback(GSQueue *gq, void *item)
|
||||||
{
|
{
|
||||||
GSQueueElem *elem = MEM_mallocN(sizeof(*elem) + gq->elem_size, "gqueue_push");
|
GSQueueElem *elem = MEM_mallocN(sizeof(*elem) + (size_t)gq->elem_size, "gqueue_push");
|
||||||
memcpy(&elem[1], item, gq->elem_size);
|
memcpy(&elem[1], item, (size_t)gq->elem_size);
|
||||||
elem->next = gq->head;
|
elem->next = gq->head;
|
||||||
|
|
||||||
if (BLI_gsqueue_is_empty(gq)) {
|
if (BLI_gsqueue_is_empty(gq)) {
|
||||||
@@ -176,5 +177,3 @@ void BLI_gsqueue_free(GSQueue *gq)
|
|||||||
}
|
}
|
||||||
MEM_freeN(gq);
|
MEM_freeN(gq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -34,12 +34,13 @@
|
|||||||
|
|
||||||
#include "BLI_math.h"
|
#include "BLI_math.h"
|
||||||
#include "BLI_rect.h"
|
#include "BLI_rect.h"
|
||||||
|
#include "BLI_strict_flags.h"
|
||||||
|
|
||||||
#include "BLI_lasso.h" /* own include */
|
#include "BLI_lasso.h" /* own include */
|
||||||
|
|
||||||
void BLI_lasso_boundbox(rcti *rect, const int mcords[][2], const short moves)
|
void BLI_lasso_boundbox(rcti *rect, const int mcords[][2], const unsigned int moves)
|
||||||
{
|
{
|
||||||
short a;
|
unsigned int a;
|
||||||
|
|
||||||
rect->xmin = rect->xmax = mcords[0][0];
|
rect->xmin = rect->xmax = mcords[0][0];
|
||||||
rect->ymin = rect->ymax = mcords[0][1];
|
rect->ymin = rect->ymax = mcords[0][1];
|
||||||
@@ -53,11 +54,11 @@ void BLI_lasso_boundbox(rcti *rect, const int mcords[][2], const short moves)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool BLI_lasso_is_point_inside(const int mcords[][2], const short moves,
|
bool BLI_lasso_is_point_inside(const int mcords[][2], const unsigned int moves,
|
||||||
const int sx, const int sy,
|
const int sx, const int sy,
|
||||||
const int error_value)
|
const int error_value)
|
||||||
{
|
{
|
||||||
if (sx == error_value) {
|
if (sx == error_value || moves == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -67,14 +68,14 @@ bool BLI_lasso_is_point_inside(const int mcords[][2], const short moves,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* edge version for lasso select. we assume boundbox check was done */
|
/* edge version for lasso select. we assume boundbox check was done */
|
||||||
bool BLI_lasso_is_edge_inside(const int mcords[][2], const short moves,
|
bool BLI_lasso_is_edge_inside(const int mcords[][2], const unsigned int moves,
|
||||||
int x0, int y0, int x1, int y1,
|
int x0, int y0, int x1, int y1,
|
||||||
const int error_value)
|
const int error_value)
|
||||||
{
|
{
|
||||||
int v1[2], v2[2];
|
int v1[2], v2[2];
|
||||||
int a;
|
unsigned int a;
|
||||||
|
|
||||||
if (x0 == error_value || x1 == error_value) {
|
if (x0 == error_value || x1 == error_value || moves == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -35,6 +35,8 @@
|
|||||||
//#include <string.h>
|
//#include <string.h>
|
||||||
|
|
||||||
#include "BLI_math.h"
|
#include "BLI_math.h"
|
||||||
|
#include "BLI_strict_flags.h"
|
||||||
|
|
||||||
#include "BLI_quadric.h" /* own include */
|
#include "BLI_quadric.h" /* own include */
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user