]>
granicus.if.org Git - graphviz/log
Matthew Fernandez [Wed, 28 Dec 2022 18:09:05 +0000 (10:09 -0800)]
common agputc: squash -Wconversion warning
Matthew Fernandez [Wed, 28 Dec 2022 18:07:02 +0000 (10:07 -0800)]
common attach_attrs_and_arrows: remove shadowing of 'i'
Matthew Fernandez [Wed, 28 Dec 2022 17:56:52 +0000 (09:56 -0800)]
common attach_attrs_and_arrows: use 'agxbprint' to simplify some code
This is similar to
bb80d536e9cfdd4680254d9e91511b224a143eb4 .
Matthew Fernandez [Wed, 28 Dec 2022 17:56:52 +0000 (09:56 -0800)]
common set_record_rects: use 'agxbprint' to simplify some code
This is similar to
bb80d536e9cfdd4680254d9e91511b224a143eb4 .
Matthew Fernandez [Sat, 31 Dec 2022 22:29:04 +0000 (22:29 +0000)]
Merge branch 'smattr/
b4703bf7 -d781-48d4-bac0-
726026a5e221 ' into 'main'
slightly accelerate circo
See merge request graphviz/graphviz!3014
Matthew Fernandez [Sun, 25 Dec 2022 22:49:52 +0000 (14:49 -0800)]
circogen: replace CDT 'deglist' with a generic list
Apart from de-duplicating some code, this has the following notable effects:
1. The list of nodes is now stored as a contiguous array rather than a linked
list, improving performance characteristics.
2. The list no longer stores degrees, only node pointers. While the code using
this list does modify node degrees, it does not seem to modify the degree
of any node while it is present in the list. So looking up a node’s degree
through the node itself saves some memory overhead.
3. Nodes are inserted into the list and _then_ the list is sorted, rather than
maintaining an always-sorted list. This is a slight performance
improvement.
4. The list is sorted by degree _descending_ now instead of ascending. This
enables operating on the list as a stack, making the pop operation more
efficient.
Using `circo -Tsvg -o /dev/null swedish-flag.dot` on the example attached to
#1718, we have the following:
┌──────┬───────────────┬───────────────┬──────┐
│ │ before │ after │ diff │
╞══════╪═══════════════╪═══════════════╪══════╡
│ 1718 │ 3m34s │ 3m27s │ -3% │
│ │ 18MB peak RSS │ 18MB peak RSS │ -0% │
└──────┴───────────────┴───────────────┴──────┘
Matthew Fernandez [Sun, 25 Dec 2022 22:22:38 +0000 (14:22 -0800)]
cgraph: add remove-by-value functionality to the generic list
Note that this assumes elements can be compared using `memcmp` which is not true
for most aggregates. It is the responsibility of the caller to avoid using this
with types that cannot be compared in this way.
Matthew Fernandez [Sun, 25 Dec 2022 21:53:03 +0000 (13:53 -0800)]
cgraph: add sorting functionality to the generic list
Note that this implementation needed to guard the call to `qsort` with a check
that the list is non-empty. UBSan considers passing `NULL` as the first
parameter to `qsort` undefined behavior, even when `nmemb` is 0. I do not know
why this is. I cannot find any text in `qsort` references or ISO C99 to justify
this. But it is simple enough to avoid.
Similarly, passing 0 as `size` causes out-of-bounds accesses in Glibc’s `qsort`.
It is possible there is some text in ISO C99 regarding sizes that indirectly
implies this value must be non-zero. For this implementation, we rely on this
macro never being instantiated with a 0-sized type. It is possible 0-sized types
themselves are impossible without C++’s Empty Base Optimization. I only stumbled
across this quirk of `qsort` by accidentally swapping the `size` and `nmemb`
parameters.
Matthew Fernandez [Sat, 31 Dec 2022 20:43:25 +0000 (20:43 +0000)]
Merge branch 'smattr/
a6d4ce20 -5174-4877-9f60-
60bd1cdf0829 ' into 'main'
sfdpgen: remove dead code
See merge request graphviz/graphviz!3026
Matthew Fernandez [Fri, 30 Dec 2022 18:16:39 +0000 (10:16 -0800)]
sfdpgen prolongate: remove unhelpful comment
Matthew Fernandez [Fri, 30 Dec 2022 18:10:38 +0000 (10:10 -0800)]
sfdpgen: remove 'coarsen_scheme_used' option that is always set the same
Matthew Fernandez [Fri, 30 Dec 2022 18:00:14 +0000 (10:00 -0800)]
sfdpgen: remove 'coarsen_mode' option that is always set the same
Matthew Fernandez [Fri, 30 Dec 2022 17:56:59 +0000 (09:56 -0800)]
sparse: remove no longer used doubly linked list implementation
Matthew Fernandez [Fri, 30 Dec 2022 17:47:52 +0000 (09:47 -0800)]
sfdpgen: remove 'MAX_IND_VTX_SET_*' constants
The last use of these was removed in
df4f59e20e2de38b47aa58571750df4bfcc1cc13 .
Matthew Fernandez [Fri, 30 Dec 2022 17:44:06 +0000 (09:44 -0800)]
sfdpgen: remove 'PriorityQueue' code
The last use of this was removed in
d42aea4877c8ff9ea0d1cc4f23b45f2d1b958622 .
Matthew Fernandez [Sat, 31 Dec 2022 18:10:37 +0000 (18:10 +0000)]
Merge branch 'smattr/gitlab-2233' into 'main'
CMake: look for and use Qt6 in preference to Qt5
See merge request graphviz/graphviz!3027
Matthew Fernandez [Sat, 31 Dec 2022 00:23:31 +0000 (16:23 -0800)]
CMake: look for and use Qt6 in preference to Qt5
Gitlab: #2233
Matthew Fernandez [Sat, 31 Dec 2022 00:20:20 +0000 (16:20 -0800)]
gvedit MdiChild::saveFile: disable explicit UTF-8 saving with Qt ≥ 6
From Qt6 onwards, `QTextStream` is in UTF-8 by default:¹
By default, QStringConverter::Utf8 is used, and automatic unicode detection
is enabled.
Gitlab: #2233
¹ https://doc.qt.io/qt-6.2/qtextstream.html#setEncoding
Matthew Fernandez [Sat, 31 Dec 2022 00:11:17 +0000 (16:11 -0800)]
gvedit CMainWindow::actions: use '|' instead of '+' to combine QKeyCombinations
`operator+` is deprecated on this type in Qt6 and produces a warning.
`operator|` works in both Qt5 and Qt6.
Gitlab: #2233
Matthew Fernandez [Sat, 31 Dec 2022 17:23:11 +0000 (17:23 +0000)]
Merge branch 'smattr/
0c9a1cb2 -b3b4-4876-9d37-
15e27a83c8c7 ' into 'main'
sparse: some cgraph allocation wrapper migration, removing unnecessary casts
See merge request graphviz/graphviz!3023
Matthew Fernandez [Fri, 18 Nov 2022 01:14:41 +0000 (17:14 -0800)]
sparse get_or_alloc_force_qt: use cgraph wrapper for allocation
The lib/cgraph/alloc.h wrappers are similar to the older lib/common/memory.h
wrappers except (1) they are header-only and (2) they live in a directory
(cgraph) that is at the root of the dependency tree. The long term plan is to
replace all use of lib/common/memory.h with lib/cgraph/alloc.h.
Matthew Fernandez [Thu, 29 Dec 2022 21:47:09 +0000 (13:47 -0800)]
sparse get_or_alloc_force_qt: remove unnecessary casts
Matthew Fernandez [Thu, 29 Dec 2022 21:46:37 +0000 (13:46 -0800)]
sparse get_or_assign_node_force: remove unnecessary casts
Matthew Fernandez [Fri, 18 Nov 2022 01:14:41 +0000 (17:14 -0800)]
sparse DoubleLinkedList_new: use cgraph wrapper for allocation
The lib/cgraph/alloc.h wrappers are similar to the older lib/common/memory.h
wrappers except (1) they are header-only and (2) they live in a directory
(cgraph) that is at the root of the dependency tree. The long term plan is to
replace all use of lib/common/memory.h with lib/cgraph/alloc.h.
Matthew Fernandez [Thu, 29 Dec 2022 21:43:25 +0000 (13:43 -0800)]
sparse SingleLinkedList_prepend_int: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 21:43:15 +0000 (13:43 -0800)]
sparse SingleLinkedList_prepend_int: fix unchecked allocation failure
Matthew Fernandez [Thu, 29 Dec 2022 21:42:15 +0000 (13:42 -0800)]
sparse SingleLinkedList_new_int: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 21:42:03 +0000 (13:42 -0800)]
sparse SingleLinkedList_new_int: fix unchecked allocation failure
Matthew Fernandez [Fri, 18 Nov 2022 01:14:41 +0000 (17:14 -0800)]
sparse SingleLinkedList_new: use cgraph wrapper for allocation
The lib/cgraph/alloc.h wrappers are similar to the older lib/common/memory.h
wrappers except (1) they are header-only and (2) they live in a directory
(cgraph) that is at the root of the dependency tree. The long term plan is to
replace all use of lib/common/memory.h with lib/cgraph/alloc.h.
Matthew Fernandez [Fri, 30 Dec 2022 18:25:37 +0000 (18:25 +0000)]
Merge branch 'smattr/gitlab-2332' into 'main'
Autotools: remove legacy `python` discovery
See merge request graphviz/graphviz!3022
Matthew Fernandez [Thu, 29 Dec 2022 21:16:01 +0000 (13:16 -0800)]
Autotools: remove legacy `python` discovery
When removing Python 2 support, the discovery paths that checked for the Python
interpreter as `python` were retained to support older distros in the Red Hat
ecosystem where Python 3 goes by the name `python`. All currently supported
distros use the name `python3`, so this code is no longer needed.
Gitlab: related to #2332
Matthew Fernandez [Fri, 30 Dec 2022 07:36:19 +0000 (07:36 +0000)]
Merge branch 'smattr/
baf8fad8 -8d84-44e2-8ff6-
1ac1ee98a0e2 ' into 'main'
sfdpgen: remove unused control options
See merge request graphviz/graphviz!3021
Matthew Fernandez [Thu, 29 Dec 2022 20:03:06 +0000 (12:03 -0800)]
sfdpgen: remove unused 'maximal_independent_vertex_set'
Matthew Fernandez [Thu, 29 Dec 2022 20:01:09 +0000 (12:01 -0800)]
sfdpgen: remove unused 'maximal_independent_vertex_set_RS'
Matthew Fernandez [Thu, 29 Dec 2022 19:59:12 +0000 (11:59 -0800)]
sfdpgen: remove unused 'maximal_independent_edge_set'
Matthew Fernandez [Thu, 29 Dec 2022 19:57:28 +0000 (11:57 -0800)]
sfdpgen: remove unused 'maximal_independent_edge_set_heavest_edge_pernode'
Matthew Fernandez [Thu, 29 Dec 2022 19:55:39 +0000 (11:55 -0800)]
sfdpgen: remove unused 'maximal_independent_edge_set_heavest_edge_pernode_leaves_first'
Matthew Fernandez [Thu, 29 Dec 2022 19:53:30 +0000 (11:53 -0800)]
sfdpgen: remove unused 'maximal_independent_edge_set_heavest_cluster_pernode_leaves_first'
Matthew Fernandez [Thu, 29 Dec 2022 19:48:43 +0000 (11:48 -0800)]
sfdpgen: remove unused 'maximal_independent_edge_set_heavest_edge_pernode_scaled'
Matthew Fernandez [Thu, 29 Dec 2022 19:47:56 +0000 (11:47 -0800)]
sfdpgen: remove unused 'D' parameter threaded through functions
Matthew Fernandez [Thu, 29 Dec 2022 19:44:02 +0000 (11:44 -0800)]
sfdpgen: remove 'coarsen_scheme' control parameter that is always set the same
Matthew Fernandez [Thu, 29 Dec 2022 19:28:55 +0000 (11:28 -0800)]
sfdpgen: remove 'randomize' control parameter that is always true
Matthew Fernandez [Thu, 29 Dec 2022 19:15:44 +0000 (11:15 -0800)]
sparse Multilevel_MQ_Clustering_establish: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 19:15:27 +0000 (11:15 -0800)]
sparse get_mq: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 19:15:13 +0000 (11:15 -0800)]
sparse SparseMatrix_import_dot: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 19:14:55 +0000 (11:14 -0800)]
neatogen OverlapSmoother_new: remove unnecessary casts
Matthew Fernandez [Thu, 29 Dec 2022 19:14:22 +0000 (11:14 -0800)]
neatogen ideal_distance_avoid_overlap: remove useless return statement
Matthew Fernandez [Thu, 29 Dec 2022 19:14:03 +0000 (11:14 -0800)]
neatogen fdpAdjust: remove unused return value
Matthew Fernandez [Thu, 29 Dec 2022 19:11:15 +0000 (11:11 -0800)]
gvmap get_polygon_solids: remove commented out code
Matthew Fernandez [Thu, 29 Dec 2022 19:10:18 +0000 (11:10 -0800)]
gvmap get_polygon_solids: remove unnecessary casts
Matthew Fernandez [Thu, 29 Dec 2022 19:10:00 +0000 (11:10 -0800)]
gvmap get_poly_lines: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 19:09:47 +0000 (11:09 -0800)]
gvmap plot_dot_polygons: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 19:09:27 +0000 (11:09 -0800)]
gvmap improve_contiguity: remove unnecessary cast
Matthew Fernandez [Thu, 29 Dec 2022 19:08:55 +0000 (11:08 -0800)]
sparse SparseMatrix: use a 'size_t' for 'size'
Squashes 20 -Wsign-conversion, -Wconversion warnings.
Matthew Fernandez [Fri, 30 Dec 2022 00:25:47 +0000 (00:25 +0000)]
Merge branch 'smattr/gitlab-2322' into 'main'
remove gv.php include from PHP demo
Closes #2322
See merge request graphviz/graphviz!3024
Matthew Fernandez [Thu, 29 Dec 2022 22:17:41 +0000 (14:17 -0800)]
remove gv.php include from PHP demo
As of SWIG 4.1.0, PHP source is no longer generated when SWIG is targeting PHP.
Gitlab: closes #2322
Reported-by: Petr Sumbera
Matthew Fernandez [Sun, 25 Dec 2022 21:23:58 +0000 (21:23 +0000)]
Merge branch 'smattr/
0f210128 -9f5a-42e9-b2cd-
9a2a16a12a7c ' into 'main'
CI: remove Fedora 35 jobs
See merge request graphviz/graphviz!3013
Matthew Fernandez [Sun, 25 Dec 2022 20:33:26 +0000 (12:33 -0800)]
CI: remove Fedora 35 jobs
Fedora 35 has been EOLed since 2022-12-13¹.
¹ https://docs.fedoraproject.org/en-US/releases/eol/
Matthew Fernandez [Sun, 25 Dec 2022 16:57:21 +0000 (16:57 +0000)]
Merge branch 'smattr/
4fc2dbeb -1d26-463e-9258-
c6bbfda1b586 ' into 'main'
smyrna: remove more unused code
See merge request graphviz/graphviz!3012
Matthew Fernandez [Sun, 25 Dec 2022 02:29:09 +0000 (02:29 +0000)]
Merge branch 'smattr/
441b433a -bf42-4224-b269-
29de6bd0e153 ' into 'main'
neatogen: fix memory leak
See merge request graphviz/graphviz!3006
Matthew Fernandez [Thu, 22 Dec 2022 03:33:05 +0000 (19:33 -0800)]
neatogen: push queue allocation into 'bfs_bounded'
Similar to the previous commit, the callee does not care about the contents of
the queue on entry and the caller does not care about the contents of the queue
on exit. Note that in this case we need to add an extra parameter because
`bfs_bounded` did not have the queue size already.
Matthew Fernandez [Thu, 22 Dec 2022 03:18:54 +0000 (19:18 -0800)]
neatogen: push queue allocation into 'bfs'
Callers of `bfs` were constructing `Queue` objects and passing them into `bfs`.
But in all of these cases neither the callee nor the caller care about the
contents of the queue. This appears to have been an optimization to hoist
allocation of this object outside loops in callers. This is nowhere close to the
most expensive operation these locations are performing. And replicating
operations like this led to opportunities for errors like that fixed in the
prior commit. It seems a win to undo this for readability.
Matthew Fernandez [Thu, 22 Dec 2022 03:08:15 +0000 (19:08 -0800)]
neatogen embed_graph: fix memory leak of queue
Every call to `mkQueue` is intended to be paired with a call to `freeQueue`.
This function was missing its call to the free function.
Matthew Fernandez [Thu, 22 Dec 2022 03:00:31 +0000 (19:00 -0800)]
neatogen embed_graph: remove free of output parameter
The only call into this function passes `NULL` for the `coords` parameter.
Additionally it did not make much sense to free this pointer on behalf of the
caller. This function is not designed to be called in a loop, so if the caller
wants their passed-in parameter freed they should do it themselves prior to
calling.
Matthew Fernandez [Sun, 25 Dec 2022 01:16:09 +0000 (01:16 +0000)]
Merge branch 'smattr/
9d358411 -5cf8-4ba0-90f6-
97c5708027dc ' into 'main'
also allow macOS to fail the long chain test
See merge request graphviz/graphviz!3011
Matthew Fernandez [Sat, 24 Dec 2022 22:11:05 +0000 (14:11 -0800)]
smyrna: remove unused 'dlgOpenGraph_OK_Clicked'
The last use of this was removed in
7d1170f8d5208c296db891f5d93bbb158b1c1b56 .
Matthew Fernandez [Sat, 24 Dec 2022 22:07:42 +0000 (14:07 -0800)]
smyrna: remove unused 'on_newNode'
This has never been used.
Matthew Fernandez [Sat, 24 Dec 2022 22:05:30 +0000 (14:05 -0800)]
smyrna set_combobox_widget: remove no-op casts
Matthew Fernandez [Sat, 24 Dec 2022 21:53:59 +0000 (13:53 -0800)]
smyrna: remove unused 'nodesize'
Matthew Fernandez [Sat, 24 Dec 2022 21:46:58 +0000 (13:46 -0800)]
smyrna appmouse_up: remove no-op branches
Matthew Fernandez [Sat, 24 Dec 2022 21:44:30 +0000 (13:44 -0800)]
smyrna: remove unused 'prevX', 'prevY'
These have never been used.
Matthew Fernandez [Sat, 24 Dec 2022 21:30:04 +0000 (13:30 -0800)]
gvedit: remove unused 'initFiles'
Matthew Fernandez [Sat, 24 Dec 2022 21:24:25 +0000 (13:24 -0800)]
smyrna: remove disabled test mode code
Matthew Fernandez [Sat, 24 Dec 2022 21:22:52 +0000 (13:22 -0800)]
smyrna: remove unused top view user mode constants
The last use of these was removed in
34d079565882fbffdf58fe61d0f493274438a699 .
Matthew Fernandez [Sat, 24 Dec 2022 21:22:03 +0000 (13:22 -0800)]
smyrna: remove unused 'DEFAULT_FISHEYE_MAGNIFIER_RADIUS'
The last use of this was removed in
95730136091ba690f74d1ef802ca42b3cb4ed71c .
Matthew Fernandez [Sat, 24 Dec 2022 21:20:56 +0000 (13:20 -0800)]
smyrna: remove unused magnifier constants
The last use of these was removed in
6baa97a6e98923364f9d1b9a613f2b1aed87fb1b .
Matthew Fernandez [Sat, 24 Dec 2022 21:17:36 +0000 (13:17 -0800)]
also allow macOS to fail the long chain test
It seems this test can also fail in CI on macOS.
Gitlab: #1710, #1720
Matthew Fernandez [Sat, 24 Dec 2022 20:31:59 +0000 (20:31 +0000)]
Merge branch 'smattr/
0ecb9860 -22d9-40d2-9f38-
d0e434414c10 ' into 'main'
smyrna: remove some unused code
See merge request graphviz/graphviz!3005
Matthew Fernandez [Wed, 21 Dec 2022 06:05:56 +0000 (22:05 -0800)]
smyrna: remove unused 'defaultnodeshape'
Matthew Fernandez [Wed, 21 Dec 2022 05:57:16 +0000 (21:57 -0800)]
smyrna: remove unused 'filtered_attr_list'
Matthew Fernandez [Wed, 21 Dec 2022 05:50:44 +0000 (21:50 -0800)]
smyrna: remove unused 'magnifier'
Matthew Fernandez [Wed, 21 Dec 2022 05:46:22 +0000 (21:46 -0800)]
smyrna: remove unused 'fisheye_magnifier'
Matthew Fernandez [Wed, 21 Dec 2022 05:44:47 +0000 (21:44 -0800)]
smyrna: remove unused 'FontSize'
Matthew Fernandez [Wed, 21 Dec 2022 05:42:36 +0000 (21:42 -0800)]
smyrna: remove duplicate 'defaultmagnifierwidth' retrieval
The return value of this call was being ignored. It seems accidentally
copy-pasted from the lines below.
Matthew Fernandez [Wed, 21 Dec 2022 05:39:48 +0000 (21:39 -0800)]
smyrna: remove unused 'topviewusermode'
Matthew Fernandez [Wed, 21 Dec 2022 05:36:49 +0000 (21:36 -0800)]
smyrna: remove unused 'edgerendertype'
Matthew Fernandez [Wed, 21 Dec 2022 05:32:52 +0000 (21:32 -0800)]
smyrna set_viewport_settings_from_template: remove shadowing of 'view' global
Matthew Fernandez [Wed, 21 Dec 2022 05:27:05 +0000 (21:27 -0800)]
smyrna get_attribute_value: remove shadowing of 'view' global
Matthew Fernandez [Wed, 21 Dec 2022 05:26:37 +0000 (21:26 -0800)]
smyrna close_graph: remove shadowing of 'view' global
Matthew Fernandez [Wed, 21 Dec 2022 05:26:04 +0000 (21:26 -0800)]
smyrna clear_viewport: remove shadowing of 'view' global
Matthew Fernandez [Wed, 21 Dec 2022 05:22:19 +0000 (21:22 -0800)]
smyrna add_camera_to_viewport: remove shadowing of 'view' global
Matthew Fernandez [Wed, 21 Dec 2022 05:20:18 +0000 (21:20 -0800)]
smyrna new_viewport_camera: remove unused 'view' parameter
Matthew Fernandez [Wed, 21 Dec 2022 05:18:38 +0000 (21:18 -0800)]
smyrna: squash some -Wmissing-prototypes warnings
Matthew Fernandez [Wed, 21 Dec 2022 05:11:53 +0000 (21:11 -0800)]
symrna: squash -Wunused-parameter warnings in data callbacks
Matthew Fernandez [Wed, 21 Dec 2022 05:09:52 +0000 (21:09 -0800)]
smyrna new_attr: remove shadowing of global 'attr'
Note that none of the zero assignments in this function were necessary because
`gv_alloc` zeros memory.
Matthew Fernandez [Wed, 21 Dec 2022 05:08:47 +0000 (21:08 -0800)]
smyrna new_attr_with_ref: remove shadowing of 'attr' global
Matthew Fernandez [Wed, 21 Dec 2022 05:07:47 +0000 (21:07 -0800)]
smyrna new_attr_ref: remove shadowing of global 'attr'
Matthew Fernandez [Wed, 21 Dec 2022 05:06:34 +0000 (21:06 -0800)]
smyrna attr_list_new: remove unused 'g' parameter
Matthew Fernandez [Wed, 21 Dec 2022 05:00:41 +0000 (21:00 -0800)]
common startElement: remove an unnecessary cast
Matthew Fernandez [Wed, 21 Dec 2022 04:59:35 +0000 (20:59 -0800)]
cgraph: fix comment typo