]> granicus.if.org Git - graphviz/commit
gvgen: replace 'gv_stack_t' with generic list for int stack
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 8 Dec 2022 16:35:26 +0000 (08:35 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 11 Dec 2022 18:37:29 +0000 (10:37 -0800)
commitd79573050a5f67daea01c516823907373a1e562a
treee323e0f5ebda54983acc5866d4eac4a200ac1878
parentac40436aef43e055e0671bc48b9cc4be7f3e6dda
gvgen: replace 'gv_stack_t' with generic list for int stack

The generic list implementation is an improvement over `gv_stack_t` in that it
is both more flexible and type safe. Migrating to it has two primary
improvements:

  1. Maintaining type safety. There is now no need to cast when pushing and
     popping the stack. This removes two compiler warnings and leads to shorter,
     more readable code.

  2. Memory reduction. On 64-bit platforms with a 32-bit int (e.g. x86-64),
     `gv_stack_t` uses 8 bytes per int element for storage. In contrast, the
     generic list uses 4 bytes per int.
cmd/tools/graph_generator.c