diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2025-03-25 18:35:47 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2025-03-25 18:35:47 +0100 |
| commit | 56048d13b73ec6e6a9c59d62e82f41e69a3994bd (patch) | |
| tree | 49fc5d50e739a399897425756c08a73ba5924ddb /src/solvers/coord/gendata.h | |
| parent | 0f4931c8de298b0f97aba1757c9538f48adb30c6 (diff) | |
| download | nissy-core-56048d13b73ec6e6a9c59d62e82f41e69a3994bd.tar.gz nissy-core-56048d13b73ec6e6a9c59d62e82f41e69a3994bd.zip | |
More safety with pointers using VLA function parameters
Diffstat (limited to 'src/solvers/coord/gendata.h')
| -rw-r--r-- | src/solvers/coord/gendata.h | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/solvers/coord/gendata.h b/src/solvers/coord/gendata.h index 5819608..ca058b0 100644 --- a/src/solvers/coord/gendata.h +++ b/src/solvers/coord/gendata.h | |||
| @@ -1,10 +1,13 @@ | |||
| 1 | STATIC size_t gendata_coord(const coord_t *, void *); | 1 | STATIC size_t gendata_coord(const coord_t [static 1], void *); |
| 2 | STATIC int64_t gendata_coord_dispatch(const char *, void *); | 2 | STATIC int64_t gendata_coord_dispatch(const char *, void *); |
| 3 | STATIC tableinfo_t genptable_coord(const coord_t *, const void *, uint8_t *); | 3 | STATIC tableinfo_t genptable_coord( |
| 4 | const coord_t [static 1], const void *, uint8_t *); | ||
| 4 | STATIC void getdistribution_coord( | 5 | STATIC void getdistribution_coord( |
| 5 | const uint8_t *, const char *, uint64_t [static INFO_DISTRIBUTION_LEN]); | 6 | const uint8_t *, const char *, uint64_t [static INFO_DISTRIBUTION_LEN]); |
| 6 | STATIC uint8_t get_coord_pval(const coord_t *, const uint8_t *, uint64_t); | 7 | STATIC uint8_t get_coord_pval( |
| 7 | STATIC void set_coord_pval(const coord_t *, uint8_t *, uint64_t, uint8_t); | 8 | const coord_t [static 1], const uint8_t *, uint64_t); |
| 9 | STATIC void set_coord_pval( | ||
| 10 | const coord_t [static 1], uint8_t *, uint64_t, uint8_t); | ||
| 8 | 11 | ||
| 9 | STATIC int64_t | 12 | STATIC int64_t |
| 10 | gendata_coord_dispatch(const char *coordstr, void *buf) | 13 | gendata_coord_dispatch(const char *coordstr, void *buf) |
| @@ -22,7 +25,7 @@ gendata_coord_dispatch(const char *coordstr, void *buf) | |||
| 22 | } | 25 | } |
| 23 | 26 | ||
| 24 | STATIC size_t | 27 | STATIC size_t |
| 25 | gendata_coord(const coord_t *coord, void *buf) | 28 | gendata_coord(const coord_t coord[static 1], void *buf) |
| 26 | { | 29 | { |
| 27 | uint64_t coord_dsize, tablesize, ninfo; | 30 | uint64_t coord_dsize, tablesize, ninfo; |
| 28 | void *pruningbuf, *coord_data; | 31 | void *pruningbuf, *coord_data; |
| @@ -72,7 +75,11 @@ gendata_coord_return_size: | |||
| 72 | } | 75 | } |
| 73 | 76 | ||
| 74 | STATIC tableinfo_t | 77 | STATIC tableinfo_t |
| 75 | genptable_coord(const coord_t *coord, const void *data, uint8_t *table) | 78 | genptable_coord( |
| 79 | const coord_t coord[static 1], | ||
| 80 | const void *data, | ||
| 81 | uint8_t *table | ||
| 82 | ) | ||
| 76 | { | 83 | { |
| 77 | uint64_t tablesize, i, j, d, tot; | 84 | uint64_t tablesize, i, j, d, tot; |
| 78 | tableinfo_t info; | 85 | tableinfo_t info; |
| @@ -147,13 +154,22 @@ getdistribution_coord( | |||
| 147 | } | 154 | } |
| 148 | 155 | ||
| 149 | STATIC uint8_t | 156 | STATIC uint8_t |
| 150 | get_coord_pval(const coord_t *coord, const uint8_t *table, uint64_t i) | 157 | get_coord_pval( |
| 158 | const coord_t coord[static 1], | ||
| 159 | const uint8_t *table, | ||
| 160 | uint64_t i | ||
| 161 | ) | ||
| 151 | { | 162 | { |
| 152 | return (table[COORD_INDEX(i)] & COORD_MASK(i)) >> COORD_SHIFT(i); | 163 | return (table[COORD_INDEX(i)] & COORD_MASK(i)) >> COORD_SHIFT(i); |
| 153 | } | 164 | } |
| 154 | 165 | ||
| 155 | STATIC void | 166 | STATIC void |
| 156 | set_coord_pval(const coord_t *coord, uint8_t *table, uint64_t i, uint8_t val) | 167 | set_coord_pval( |
| 168 | const coord_t coord[static 1], | ||
| 169 | uint8_t *table, | ||
| 170 | uint64_t i, | ||
| 171 | uint8_t val | ||
| 172 | ) | ||
| 157 | { | 173 | { |
| 158 | table[COORD_INDEX(i)] = (table[COORD_INDEX(i)] & (~COORD_MASK(i))) | 174 | table[COORD_INDEX(i)] = (table[COORD_INDEX(i)] & (~COORD_MASK(i))) |
| 159 | | (val << COORD_SHIFT(i)); | 175 | | (val << COORD_SHIFT(i)); |
