diff --git a/engine/breeze/util/array.c b/engine/breeze/util/array.c index 021c3d3..10d1f95 100644 --- a/engine/breeze/util/array.c +++ b/engine/breeze/util/array.c @@ -28,6 +28,7 @@ void _bzArrayClear(void *arr) { } i32 _bzArraySize(void *arr) { + if (arr == NULL) return 0; return ARRAY_HEAD(arr)->size; } i32 _bzArrayCapacity(void *arr) { diff --git a/engine/breeze/util/spatial_grid.c b/engine/breeze/util/spatial_grid.c index aa269f7..f5de1df 100644 --- a/engine/breeze/util/spatial_grid.c +++ b/engine/breeze/util/spatial_grid.c @@ -104,6 +104,17 @@ static BzSpatialGridIndex calculateGridIndex(BzSpatialGrid *grid, f32 posX, f32 if (index.minY < 0) index.minY = 0; if (index.maxX >= grid->width) index.maxX = grid->width - 1; if (index.maxY >= grid->height) index.maxY = grid->height - 1; + + if (index.minX > index.maxX) { + i32 tmp = index.minX; + index.minX = index.maxX; + index.maxX = tmp; + } + if (index.minY > index.maxY) { + i32 tmp = index.minY; + index.minY = index.maxY; + index.maxX = tmp; + } return index; }