Limit maximum grid size in Loopy

Every grid shape has its own limit, so this involved adding a new
interface between loopy.c and grid.c.  The limits are based on ensuring
that the co-ordinate system of the grid doesn't overflow INT_MAX and
neither do the lengths of the face and dot arrays.

Though now I come to look at it I think the actual limits of grid.c are
much lower.  Hmm.
This commit is contained in:
Ben Harris
2023-01-11 23:11:46 +00:00
parent fcda12f4b7
commit d71bba1a17
3 changed files with 210 additions and 1 deletions

2
grid.h
View File

@ -115,6 +115,8 @@ typedef struct grid {
typedef enum grid_type { GRIDGEN_LIST(ENUM) GRID_TYPE_MAX } grid_type;
#undef ENUM
const char *grid_validate_params(grid_type type, int width, int height);
/* Free directly after use if non-NULL. Will never contain an underscore
* (so clients can safely use that as a separator). */
char *grid_new_desc(grid_type type, int width, int height, random_state *rs);