From 510a7471348788fccba6b7c4b9f7b7cc9aee6ba9 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 21 Apr 2025 14:33:01 +0200 Subject: Always use unsigned char * for data buffers Before this commit I was inconsistently using one of void *, char * and uint8_t *. --- src/solvers/coord/common.h | 46 ++++++++++++++++++++-------------- src/solvers/coord/dr.h | 16 ++++++------ src/solvers/coord/dreo.h | 16 ++++++------ src/solvers/coord/eo.h | 16 ++++++------ src/solvers/coord/gendata.h | 54 ++++++++++++++++++++-------------------- src/solvers/coord/solve.h | 26 +++++++++---------- src/solvers/coord/types_macros.h | 8 +++--- 7 files changed, 95 insertions(+), 87 deletions(-) (limited to 'src/solvers/coord') diff --git a/src/solvers/coord/common.h b/src/solvers/coord/common.h index 2eb5ad0..8fd405c 100644 --- a/src/solvers/coord/common.h +++ b/src/solvers/coord/common.h @@ -1,25 +1,29 @@ STATIC uint64_t coord_coord_generic( - const coord_t [static 1], cube_t, const void *); + const coord_t [static 1], cube_t, const unsigned char *); STATIC cube_t coord_cube_generic( - const coord_t [static 1], uint64_t, const void *); + const coord_t [static 1], uint64_t, const unsigned char *); STATIC bool coord_isnasty_generic( - const coord_t [static 1], uint64_t, const void *); -STATIC size_t coord_gendata_generic(const coord_t [static 1], void *); + const coord_t [static 1], uint64_t, const unsigned char *); +STATIC size_t coord_gendata_generic(const coord_t [static 1], unsigned char *); STATIC void append_coord_name(const coord_t [static 1], char *); STATIC bool solution_lastqt_cw(const solution_moves_t [static 1]); -STATIC bool coord_can_switch( - const coord_t [static 1], const void *, size_t n, const uint8_t [n]); +STATIC bool coord_can_switch(const coord_t [static 1], const unsigned char *, + size_t n, const uint8_t [n]); STATIC uint64_t -coord_coord_generic(const coord_t coord[static 1], cube_t c, const void *data) +coord_coord_generic( + const coord_t coord[static 1], + cube_t c, + const unsigned char *data +) { - const char *datanoinfo; + const unsigned char *datanoinfo; const uint32_t *data32; uint32_t d; cube_t tr; - datanoinfo = (const char *)data + INFOSIZE; + datanoinfo = data + INFOSIZE; data32 = (const uint32_t *)datanoinfo; d = data32[coord->sym.coord(c)]; tr = transform(c, COORD_TTREP(d)); @@ -28,13 +32,17 @@ coord_coord_generic(const coord_t coord[static 1], cube_t c, const void *data) } STATIC cube_t -coord_cube_generic(const coord_t coord[static 1], uint64_t i, const void *data) +coord_cube_generic( + const coord_t coord[static 1], + uint64_t i, + const unsigned char *data +) { - const char *datanoinfo; + const unsigned char *datanoinfo; const uint32_t *rep32; cube_t c; - datanoinfo = (const char *)data + INFOSIZE; + datanoinfo = data + INFOSIZE; rep32 = (const uint32_t *)(datanoinfo + 4 * (size_t)coord->sym.max); c = coord->sym.cube(rep32[i / coord->sym.max2]); @@ -45,14 +53,14 @@ STATIC bool coord_isnasty_generic( const coord_t coord[static 1], uint64_t i, - const void *data + const unsigned char *data ) { - const char *datanoinfo; + const unsigned char *datanoinfo; const uint32_t *classttrep, *rep32; uint32_t r; - datanoinfo = (const char *)data + INFOSIZE; + datanoinfo = data + INFOSIZE; classttrep = (const uint32_t *)datanoinfo; rep32 = (const uint32_t *)(datanoinfo + 4 * (size_t)coord->sym.max); r = rep32[i / coord->sym.max2]; @@ -63,11 +71,11 @@ coord_isnasty_generic( STATIC size_t coord_gendata_generic( const coord_t coord[static 1], - void *data + unsigned char *data ) { uint64_t i, j, n, t, nasty; - char *datanoinfo; + unsigned char *datanoinfo; uint32_t *classttrep, *rep; size_t coord_datasize; cube_t c; @@ -78,7 +86,7 @@ coord_gendata_generic( if (data == NULL) return coord_datasize; - datanoinfo = (char *)data + INFOSIZE; + datanoinfo = data + INFOSIZE; classttrep = (uint32_t *)datanoinfo; rep = classttrep + coord->sym.max; memset(data, 0xFF, coord_datasize); @@ -154,7 +162,7 @@ solution_lastqt_cw(const solution_moves_t s[static 1]) STATIC bool coord_can_switch( const coord_t coord[static 1], - const void *data, + const unsigned char *data, size_t n, const uint8_t moves[n] ) diff --git a/src/solvers/coord/dr.h b/src/solvers/coord/dr.h index 3bc4c6d..e197f8c 100644 --- a/src/solvers/coord/dr.h +++ b/src/solvers/coord/dr.h @@ -5,10 +5,10 @@ STATIC uint64_t coord_dreoesep_nosym(cube_t); STATIC cube_t invcoord_dreoesep_nosym(uint64_t); STATIC cube_t coordinate_dr_merge(cube_t, cube_t); -STATIC uint64_t coordinate_dr_coord(cube_t, const void *); -STATIC cube_t coordinate_dr_cube(uint64_t, const void *); -STATIC bool coordinate_dr_isnasty(uint64_t, const void *); -STATIC size_t coordinate_dr_gendata(void *); +STATIC uint64_t coordinate_dr_coord(cube_t, const unsigned char *); +STATIC cube_t coordinate_dr_cube(uint64_t, const unsigned char *); +STATIC bool coordinate_dr_isnasty(uint64_t, const unsigned char *); +STATIC size_t coordinate_dr_gendata(unsigned char *); STATIC bool is_eoco_solvable(cube_t); @@ -81,25 +81,25 @@ coordinate_dr_merge(cube_t c1, cube_t c2) } STATIC uint64_t -coordinate_dr_coord(cube_t cube, const void *data) +coordinate_dr_coord(cube_t cube, const unsigned char *data) { return coord_coord_generic(&coordinate_dr, cube, data); } STATIC cube_t -coordinate_dr_cube(uint64_t i, const void *data) +coordinate_dr_cube(uint64_t i, const unsigned char *data) { return coord_cube_generic(&coordinate_dr, i, data); } STATIC bool -coordinate_dr_isnasty(uint64_t i, const void *data) +coordinate_dr_isnasty(uint64_t i, const unsigned char *data) { return coord_isnasty_generic(&coordinate_dr, i, data); } STATIC size_t -coordinate_dr_gendata(void *data) +coordinate_dr_gendata(unsigned char *data) { return coord_gendata_generic(&coordinate_dr, data); } diff --git a/src/solvers/coord/dreo.h b/src/solvers/coord/dreo.h index 37de0d3..2bc8cd1 100644 --- a/src/solvers/coord/dreo.h +++ b/src/solvers/coord/dreo.h @@ -4,10 +4,10 @@ STATIC uint64_t coord_dresep_nosym(cube_t); STATIC cube_t invcoord_dresep_nosym(uint64_t); STATIC cube_t coordinate_dreo_merge(cube_t, cube_t); -STATIC uint64_t coordinate_dreo_coord(cube_t, const void *); -STATIC cube_t coordinate_dreo_cube(uint64_t, const void *); -STATIC bool coordinate_dreo_isnasty(uint64_t, const void *); -STATIC size_t coordinate_dreo_gendata(void *); +STATIC uint64_t coordinate_dreo_coord(cube_t, const unsigned char *); +STATIC cube_t coordinate_dreo_cube(uint64_t, const unsigned char *); +STATIC bool coordinate_dreo_isnasty(uint64_t, const unsigned char *); +STATIC size_t coordinate_dreo_gendata(unsigned char *); STATIC bool is_dreo_solvable(cube_t); @@ -63,25 +63,25 @@ coordinate_dreo_merge(cube_t c1, cube_t c2) } STATIC uint64_t -coordinate_dreo_coord(cube_t cube, const void *data) +coordinate_dreo_coord(cube_t cube, const unsigned char *data) { return coord_coord_generic(&coordinate_dreo, cube, data); } STATIC cube_t -coordinate_dreo_cube(uint64_t i, const void *data) +coordinate_dreo_cube(uint64_t i, const unsigned char *data) { return coord_cube_generic(&coordinate_dreo, i, data); } STATIC bool -coordinate_dreo_isnasty(uint64_t i, const void *data) +coordinate_dreo_isnasty(uint64_t i, const unsigned char *data) { return coord_isnasty_generic(&coordinate_dreo, i, data); } STATIC size_t -coordinate_dreo_gendata(void *data) +coordinate_dreo_gendata(unsigned char *data) { return coord_gendata_generic(&coordinate_dreo, data); } diff --git a/src/solvers/coord/eo.h b/src/solvers/coord/eo.h index a0685c4..c8faaea 100644 --- a/src/solvers/coord/eo.h +++ b/src/solvers/coord/eo.h @@ -1,7 +1,7 @@ -STATIC uint64_t coordinate_eo_coord(cube_t, const void *); -STATIC cube_t coordinate_eo_cube(uint64_t, const void *); -STATIC bool coordinate_eo_isnasty(uint64_t, const void *); -STATIC size_t coordinate_eo_gendata(void *); +STATIC uint64_t coordinate_eo_coord(cube_t, const unsigned char *); +STATIC cube_t coordinate_eo_cube(uint64_t, const unsigned char *); +STATIC bool coordinate_eo_isnasty(uint64_t, const unsigned char *); +STATIC size_t coordinate_eo_gendata(unsigned char *); STATIC bool is_eo_even(cube_t); STATIC coord_t coordinate_eo = { @@ -24,13 +24,13 @@ STATIC coord_t coordinate_eo = { }; STATIC uint64_t -coordinate_eo_coord(cube_t c, const void *data) +coordinate_eo_coord(cube_t c, const unsigned char *data) { return (uint64_t)coord_eo(c); } STATIC cube_t -coordinate_eo_cube(uint64_t c, const void *data) +coordinate_eo_cube(uint64_t c, const unsigned char *data) { cube_t cube = SOLVED_CUBE; set_eo(&cube, (int64_t)c); @@ -38,13 +38,13 @@ coordinate_eo_cube(uint64_t c, const void *data) } STATIC bool -coordinate_eo_isnasty(uint64_t c, const void *data) +coordinate_eo_isnasty(uint64_t c, const unsigned char *data) { return false; } STATIC size_t -coordinate_eo_gendata(void *data) +coordinate_eo_gendata(unsigned char *data) { return 0; } diff --git a/src/solvers/coord/gendata.h b/src/solvers/coord/gendata.h index ae7b39e..7a974f8 100644 --- a/src/solvers/coord/gendata.h +++ b/src/solvers/coord/gendata.h @@ -1,21 +1,21 @@ -STATIC size_t gendata_coord(const coord_t [static 1], void *); -STATIC int64_t gendata_coord_dispatch(const char *, void *); +STATIC size_t gendata_coord(const coord_t [static 1], unsigned char *); +STATIC int64_t gendata_coord_dispatch(const char *, unsigned char *); STATIC tableinfo_t genptable_coord( - const coord_t [static 1], const void *, uint8_t *); + const coord_t [static 1], const unsigned char *, unsigned char *); STATIC bool switch_to_fromnew(uint64_t, uint64_t, uint64_t); -STATIC uint64_t genptable_coord_fillneighbors( - const coord_t [static 1], const void *, uint64_t, uint8_t, uint8_t *); -STATIC uint64_t genptable_coord_fillfromnew( - const coord_t [static 1], const void *, uint64_t, uint8_t, uint8_t *); -STATIC void getdistribution_coord( - const uint8_t *, const char *, uint64_t [static INFO_DISTRIBUTION_LEN]); +STATIC uint64_t genptable_coord_fillneighbors(const coord_t [static 1], + const unsigned char *, uint64_t, uint8_t, unsigned char *); +STATIC uint64_t genptable_coord_fillfromnew(const coord_t [static 1], + const unsigned char *, uint64_t, uint8_t, unsigned char *); +STATIC void getdistribution_coord(const unsigned char *, const char *, + uint64_t [static INFO_DISTRIBUTION_LEN]); STATIC uint8_t get_coord_pval( - const coord_t [static 1], const uint8_t *, uint64_t); + const coord_t [static 1], const unsigned char *, uint64_t); STATIC void set_coord_pval( - const coord_t [static 1], uint8_t *, uint64_t, uint8_t); + const coord_t [static 1], unsigned char *, uint64_t, uint8_t); STATIC int64_t -gendata_coord_dispatch(const char *coordstr, void *buf) +gendata_coord_dispatch(const char *coordstr, unsigned char *buf) { coord_t *coord; @@ -30,14 +30,14 @@ gendata_coord_dispatch(const char *coordstr, void *buf) } STATIC size_t -gendata_coord(const coord_t coord[static 1], void *buf) +gendata_coord(const coord_t coord[static 1], unsigned char *buf) { uint64_t coord_dsize, tablesize, ninfo; - void *pruningbuf, *coord_data; - uint8_t *table; + unsigned char *pruningbuf, *coord_data; + unsigned char *table; tableinfo_t coord_data_info, pruning_info; - coord_data = buf == NULL ? NULL : ((uint8_t *)buf) + INFOSIZE; + coord_data = buf == NULL ? NULL : buf + INFOSIZE; coord_dsize = coord->gendata(coord_data); if (coord_dsize == SIZE_MAX) goto gendata_coord_error; @@ -69,12 +69,12 @@ gendata_coord(const coord_t coord[static 1], void *buf) writetableinfo(&coord_data_info, INFOSIZE + coord_dsize, buf); - pruningbuf = ((uint8_t *)buf) + INFOSIZE + coord_dsize; + pruningbuf = buf + INFOSIZE + coord_dsize; } else { pruningbuf = buf; } - table = ((uint8_t *)pruningbuf) + INFOSIZE; + table = pruningbuf + INFOSIZE; pruning_info = genptable_coord(coord, coord_data, table); writetableinfo(&pruning_info, INFOSIZE + tablesize, pruningbuf); @@ -89,8 +89,8 @@ gendata_coord_error: STATIC tableinfo_t genptable_coord( const coord_t coord[static 1], - const void *data, - uint8_t *table + const unsigned char *data, + unsigned char *table ) { uint64_t tablesize, i, d, tot, t, nm; @@ -161,10 +161,10 @@ switch_to_fromnew(uint64_t done, uint64_t max, uint64_t nm) STATIC uint64_t genptable_coord_fillneighbors( const coord_t coord[static 1], - const void *data, + const unsigned char *data, uint64_t i, uint8_t d, - uint8_t *table + unsigned char *table ) { bool isnasty; @@ -198,10 +198,10 @@ genptable_coord_fillneighbors( STATIC uint64_t genptable_coord_fillfromnew( const coord_t coord[static 1], - const void *data, + const unsigned char *data, uint64_t i, uint8_t d, - uint8_t *table + unsigned char *table ) { bool found; @@ -251,7 +251,7 @@ genptable_coord_fillfromnew( STATIC void getdistribution_coord( - const uint8_t *table, + const unsigned char *table, const char *coord, uint64_t distr[static INFO_DISTRIBUTION_LEN] ) @@ -274,7 +274,7 @@ getdistribution_coord( STATIC uint8_t get_coord_pval( const coord_t coord[static 1], - const uint8_t *table, + const unsigned char *table, uint64_t i ) { @@ -284,7 +284,7 @@ get_coord_pval( STATIC void set_coord_pval( const coord_t coord[static 1], - uint8_t *table, + unsigned char *table, uint64_t i, uint8_t val ) diff --git a/src/solvers/coord/solve.h b/src/solvers/coord/solve.h index 072aa27..fb996ac 100644 --- a/src/solvers/coord/solve.h +++ b/src/solvers/coord/solve.h @@ -8,16 +8,16 @@ typedef struct { uint8_t nissflag; bool lastisnormal; coord_t *coord; - const void *coord_data; - const uint8_t *ptable; + const unsigned char *coord_data; + const unsigned char *ptable; } dfsarg_solve_coord_t; STATIC int64_t solve_coord(cube_t, coord_t [static 1], uint8_t, uint8_t, - uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, const void *, - size_t n, char [n]); + uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, + const unsigned char *, size_t n, char [n]); STATIC int64_t solve_coord_dispatch(cube_t, const char *, uint8_t, uint8_t, - uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, const void *, size_t n, - char [n]); + uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, const unsigned char *, + size_t n, char [n]); STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]); STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]); STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t [static 1]); @@ -209,7 +209,7 @@ solve_coord_dispatch( uint8_t optimal, uint8_t threads, uint64_t data_size, - const void *data, + const unsigned char *data, size_t solutions_size, char sols[solutions_size] ) @@ -248,7 +248,7 @@ solve_coord( uint8_t optimal, uint8_t threads, uint64_t data_size, - const void *data, + const unsigned char *data, size_t solutions_size, char sols[solutions_size] ) @@ -257,8 +257,8 @@ solve_coord( uint8_t t; int64_t ndepth; cube_t c; - const void *coord_data; - const uint8_t *ptable; + const unsigned char *coord_data; + const unsigned char *ptable; dfsarg_solve_coord_t arg; tableinfo_t info; solution_moves_t solution_moves; @@ -280,11 +280,11 @@ solve_coord( if (info.type == TABLETYPE_PRUNING) { /* Only the pruning table */ coord_data = NULL; - ptable = (uint8_t *)data + INFOSIZE; + ptable = data + INFOSIZE; } else { /* Coordinate has extra data */ - coord_data = (uint8_t *)data + INFOSIZE; - ptable = (uint8_t *)data + info.next + INFOSIZE; + coord_data = data + INFOSIZE; + ptable = data + info.next + INFOSIZE; } solution_moves_reset(&solution_moves); diff --git a/src/solvers/coord/types_macros.h b/src/solvers/coord/types_macros.h index 84ed8eb..2767dcc 100644 --- a/src/solvers/coord/types_macros.h +++ b/src/solvers/coord/types_macros.h @@ -16,10 +16,10 @@ typedef struct { const char name[255]; - uint64_t (*coord)(cube_t, const void *); - cube_t (*cube)(uint64_t, const void *); - bool (*isnasty)(uint64_t, const void *); - size_t (*gendata)(void *); + uint64_t (*coord)(cube_t, const unsigned char *); + cube_t (*cube)(uint64_t, const unsigned char *); + bool (*isnasty)(uint64_t, const unsigned char *); + size_t (*gendata)(unsigned char *); uint64_t max; uint32_t moves_mask; uint64_t trans_mask; -- cgit v1.3