BOLT #1: * * All data fields are unsigned big-endian unless otherwise specified. */
| 274 | * All data fields are unsigned big-endian unless otherwise specified. |
| 275 | */ |
| 276 | void set_feature_bit(u8 **ptr, u32 bit) |
| 277 | { |
| 278 | size_t len = tal_count(*ptr); |
| 279 | if (bit / 8 >= len) { |
| 280 | size_t newlen = (bit / 8) + 1; |
| 281 | u8 *newarr = tal_arrz(tal_parent(*ptr), u8, newlen); |
| 282 | memcpy(newarr + (newlen - len), *ptr, len); |
| 283 | tal_free(*ptr); |
| 284 | *ptr = newarr; |
| 285 | len = newlen; |
| 286 | } |
| 287 | (*ptr)[len - 1 - bit / 8] |= (1 << (bit % 8)); |
| 288 | } |
| 289 | |
| 290 | static bool test_bit(const u8 *features, size_t byte, unsigned int bit) |
| 291 | { |