| 171 | }; |
| 172 | |
| 173 | static void trim_features(u8 **features) |
| 174 | { |
| 175 | size_t trim, len = tal_bytelen(*features); |
| 176 | |
| 177 | /* Don't try to tal_resize a NULL array */ |
| 178 | if (len == 0) |
| 179 | return; |
| 180 | |
| 181 | /* Big-endian bitfields are weird, but it means we trim |
| 182 | * from the front: */ |
| 183 | for (trim = 0; trim < len && (*features)[trim] == 0; trim++); |
| 184 | memmove(*features, *features + trim, len - trim); |
| 185 | tal_resize(features, len - trim); |
| 186 | } |
| 187 | |
| 188 | static void clear_feature_bit(u8 *features, u32 bit) |
| 189 | { |