[Freeciv-tickets] [freeciv] #44750: generate_packets.py: erroneous output when some (but not all) variants of a packet have no fields

Back to archive index
OSDN Ticket System norep****@osdn*****
Sat Jun 4 07:04:59 JST 2022


#44750: generate_packets.py: erroneous output when some (but not all) variants of a packet have no fields

  Open Date: 2022-06-03 23:12
Last Update: 2022-06-04 00:04

URL for this Ticket:
    https://osdn.net//projects/freeciv/ticket/44750
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=44750

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2022-06-04 00:04 Updated by: alienvalkyrie
 * Details Updated

Comment:

The simple-seeming solution (doing stuff based on Packet.no_packet rather than Variant.fields) unfortunately leads to code that still doesn't compile (in debug mode at least) – the lack of a __dummy field means nothing is written to the packet struct in the receive handler, which gives "potentially uninitialized" warnings, and the send handler ends up with unused variables.
Since this turned out to be more complex than anticipated, while not a pressing concern at all, I'll put this on the back burner. I'm considering just treating this edge case as unsupported; it seems quite unlikely that an empty variant of a packet that usually carries information would be intended anyhow.

---------------------------------------------------------------------
Ticket Status:

      Reporter: alienvalkyrie
         Owner: (None)
          Type: Bugs
        Status: Open
      Priority: 5 - Medium
     MileStone: (None)
     Component: Bootstrap
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

Packets with no fields are handled differently from packets with fields. Some code in generate_packets.py only looks at a variant's fields to determine whether this is the case, so if a packet has fields, but one of its variants does not, that causes problems. This happens when all fields of a packet are add-cap or remove-cap, and no capability is used for both.
As far as I can tell, if this ever occurs in practice, the resulting code will not compile, so it won't result in sneaky issues that remain undetected and actually get committed.

-- 
Ticket information of Freeciv project
Freeciv Project is hosted on OSDN

Project URL: https://osdn.net/projects/freeciv/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/freeciv/ticket/44750
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=12505&tid=44750



More information about the Freeciv-tickets mailing list
Back to archive index