I'm not exactly happy that this patch introduces side effects in Field.get_cmp_wrapper() – modifying an object other than self, no less (setting differ_used on the packet variant). I wish I'd noticed this earlier, before writing a bunch of patches based on top of this.
I'm thinking it should be possible to already determine the correct value of differ_used in the Variant initializer (which my later patches don't touch) – if I'm not mistaken it gets set iff (not self.no_packet) and self.delta and (self.is_info != "no" or <there is a field that is not a bool folded into the header>).
Question is whether it would be better to still do that in this patch (delaying it further), or fix it in a separate patch on top of this.
Reply To alienvalkyrie
I'm thinking it should be possible to already determine the correct value of differ_used in the Variant initializer
Tried it; works swimmingly; patch for it attached – you can merge it into your patch if you want, or I can turn it into a separate ticket.
Reply To alienvalkyrie
Tried it; works swimmingly; patch for it attached – you can merge it into your patch if you want, or I can turn it into a separate ticket.
New full versions of the patches with this rolled in attached.
- Did S2_6 port too as it was not so hard than I first thought. Want to keep branch buildable at least.
There was an update to Debian Unstable package of clang-15 (development version) package, so I tried to compile S3_1 with that. It failed on packets_gen.c (and likely would fail in later parts of the build as well). More details to follow when I have time.
I don't think we need to consider this a blocker against S3_1-alpha3, or even against 3.0.2. Clang-15 is a development version compiler after all, it should be enough to get fixes out in later releases, before clang-15 becomes stable and people start actually using it.