]> granicus.if.org Git - graphviz/log
graphviz
2 years agopack polyGraphs: use cgraph wrappers for allocation
Matthew Fernandez [Wed, 21 Sep 2022 02:15:46 +0000 (19:15 -0700)]
pack polyGraphs: use cgraph wrappers 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.

2 years agopack polyRects: use cgraph wrappers for allocation
Matthew Fernandez [Wed, 21 Sep 2022 02:15:13 +0000 (19:15 -0700)]
pack polyRects: use cgraph wrappers 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.

2 years agopack arrayRects: use cgraph wrappers for allocation
Matthew Fernandez [Wed, 21 Sep 2022 02:14:36 +0000 (19:14 -0700)]
pack arrayRects: use cgraph wrappers 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.

2 years agopack genPoly: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 21 Sep 2022 02:13:48 +0000 (19:13 -0700)]
pack genPoly: 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.

2 years agoMerge branch 'smattr/c8d68dc4-9ef2-4cbd-9d41-d74138475d3b' into 'main'
Matthew Fernandez [Wed, 21 Sep 2022 02:03:58 +0000 (02:03 +0000)]
Merge branch 'smattr/c8d68dc4-9ef2-4cbd-9d41-d74138475d3b' into 'main'

topfish: more progress towards using cgraph wrappers for allocation

See merge request graphviz/graphviz!2848

2 years agotopfish findGlobalIndexesOfActiveNeighbors: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:16:43 +0000 (10:16 -0700)]
topfish findGlobalIndexesOfActiveNeighbors: use cgraph wrappers 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.

2 years agotopfish init_ex_graph: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:16:07 +0000 (10:16 -0700)]
topfish init_ex_graph: use cgraph wrappers 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.

2 years agotopfish set_active_levels: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:15:39 +0000 (10:15 -0700)]
topfish set_active_levels: use cgraph wrappers 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.

2 years agotopfish create_hierarchy: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:15:14 +0000 (10:15 -0700)]
topfish create_hierarchy: use cgraph wrappers 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.

2 years agotopfish cpExGraph: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:14:47 +0000 (10:14 -0700)]
topfish cpExGraph: use cgraph wrappers 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.

2 years agotopfish cpGraph: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:14:21 +0000 (10:14 -0700)]
topfish cpGraph: use cgraph wrappers 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.

2 years agotopfish coarsen_match: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:13:57 +0000 (10:13 -0700)]
topfish coarsen_match: use cgraph wrappers 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.

2 years agotopfish make_coarse_ex_graph: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:13:29 +0000 (10:13 -0700)]
topfish make_coarse_ex_graph: use cgraph wrappers 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.

2 years agotopfish make_coarse_graph: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:13:04 +0000 (10:13 -0700)]
topfish make_coarse_graph: use cgraph wrappers 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.

2 years agotopfish maxmatch: use cgraph wrappers for allocation
Matthew Fernandez [Sun, 18 Sep 2022 17:12:14 +0000 (10:12 -0700)]
topfish maxmatch: use cgraph wrappers 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.

2 years agotopfish fill_neighbors_vec: use 'fabsf' instead of casting to float
Matthew Fernandez [Sun, 18 Sep 2022 16:41:12 +0000 (09:41 -0700)]
topfish fill_neighbors_vec: use 'fabsf' instead of casting to float

This is simpler and more efficient when both the input and the desired output
type are floats.

2 years agoneatogen: remove 'USE_STYLES'-guarded code
Matthew Fernandez [Sun, 18 Sep 2022 16:40:08 +0000 (09:40 -0700)]
neatogen: remove 'USE_STYLES'-guarded code

Nothing in the build systems defines this.

2 years agotopfish: remove 'STYLES'-guarded code
Matthew Fernandez [Sun, 18 Sep 2022 16:38:53 +0000 (09:38 -0700)]
topfish: remove 'STYLES'-guarded code

Nothing in the build systems defines this.

2 years agoMerge branch 'smattr/24281a46-1d36-4056-9003-1cdde711ff74' into 'main'
Matthew Fernandez [Wed, 21 Sep 2022 01:10:04 +0000 (01:10 +0000)]
Merge branch 'smattr/24281a46-1d36-4056-9003-1cdde711ff74' into 'main'

glcomp: use cgraph wrappers for allocation

See merge request graphviz/graphviz!2847

2 years agoglcomp glCompPanelNew: use cgraph wrapper for allocation
Matthew Fernandez [Sat, 17 Sep 2022 00:45:07 +0000 (17:45 -0700)]
glcomp glCompPanelNew: 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.

2 years agoglcomp glCompImageNew: use cgraph wrapper for allocation
Matthew Fernandez [Sat, 17 Sep 2022 00:43:26 +0000 (17:43 -0700)]
glcomp glCompImageNew: 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.

2 years agoglcomp glCompLabelNew: fix unchecked allocation failure
Matthew Fernandez [Sat, 17 Sep 2022 00:41:46 +0000 (17:41 -0700)]
glcomp glCompLabelNew: fix unchecked allocation failure

2 years agoglcomp glCompLabelNew: use cgraph wrapper for allocation
Matthew Fernandez [Sat, 17 Sep 2022 00:41:23 +0000 (17:41 -0700)]
glcomp glCompLabelNew: 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.

2 years agoglcomp glCompSetAddObj: fix unchecked allocation failure
Matthew Fernandez [Sat, 17 Sep 2022 00:40:00 +0000 (17:40 -0700)]
glcomp glCompSetAddObj: fix unchecked allocation failure

2 years agoglcomp glCompSetNew: use cgraph wrapper for allocation
Matthew Fernandez [Sat, 17 Sep 2022 00:39:34 +0000 (17:39 -0700)]
glcomp glCompSetNew: 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.

2 years agoglcomp glNewFontFromParent: fix unchecked allocation failure
Matthew Fernandez [Sat, 17 Sep 2022 00:33:51 +0000 (17:33 -0700)]
glcomp glNewFontFromParent: fix unchecked allocation failure

2 years agoglcomp glNewFontFromParent: use cgraph wrapper for allocation
Matthew Fernandez [Sat, 17 Sep 2022 00:33:13 +0000 (17:33 -0700)]
glcomp glNewFontFromParent: 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.

2 years agoglcomp glNewFont: fix unchecked allocation failures
Matthew Fernandez [Sat, 17 Sep 2022 00:32:36 +0000 (17:32 -0700)]
glcomp glNewFont: fix unchecked allocation failures

2 years agoglcomp glCompSetAddNewTexLabel: fix unchecked allocation failures
Matthew Fernandez [Sat, 17 Sep 2022 00:27:26 +0000 (17:27 -0700)]
glcomp glCompSetAddNewTexLabel: fix unchecked allocation failures

2 years agoglcomp glCompSetAddNewTexture: use cgraph wrappers for allocation
Matthew Fernandez [Sat, 17 Sep 2022 00:26:38 +0000 (17:26 -0700)]
glcomp glCompSetAddNewTexture: use cgraph wrappers 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.

2 years agoglcomp glCompButtonNew: use cgraph wrapper for allocation
Matthew Fernandez [Sat, 17 Sep 2022 00:18:25 +0000 (17:18 -0700)]
glcomp glCompButtonNew: 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.

2 years agoMerge branch 'add-more-overlap-checks-and-test-cases' into 'main'
Magnus Jacobsson [Tue, 20 Sep 2022 18:46:29 +0000 (18:46 +0000)]
Merge branch 'add-more-overlap-checks-and-test-cases' into 'main'

Add more overlap checks and test cases

See merge request graphviz/graphviz!2845

2 years agoadd new test_max_edge_stem_arrow_overlap_simple test
Magnus Jacobsson [Wed, 14 Sep 2022 10:17:46 +0000 (12:17 +0200)]
add new test_max_edge_stem_arrow_overlap_simple test

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agotests: test_edge_node_overlap_utilities: check max edge stem/arrow overlap
Magnus Jacobsson [Wed, 14 Sep 2022 09:45:52 +0000 (11:45 +0200)]
tests: test_edge_node_overlap_utilities: check max edge stem/arrow overlap

2 years agoadd new test_min_edge_stem_arrow_overlap_simple test
Magnus Jacobsson [Wed, 14 Sep 2022 07:29:36 +0000 (09:29 +0200)]
add new test_min_edge_stem_arrow_overlap_simple test

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agotests: test_edge_node_overlap_utilities: check min edge stem/arrow overlap
Magnus Jacobsson [Wed, 24 Aug 2022 10:08:13 +0000 (12:08 +0200)]
tests: test_edge_node_overlap_utilities: check min edge stem/arrow overlap

2 years agotests: SVGAnalyzer: add retrieval of edge arrow to GraphvizEdge
Magnus Jacobsson [Wed, 24 Aug 2022 09:54:30 +0000 (11:54 +0200)]
tests: SVGAnalyzer: add retrieval of edge arrow to GraphvizEdge

2 years agotests: SVGAnalyzer: add retrieval of edge stem to GraphvizEdge
Magnus Jacobsson [Wed, 24 Aug 2022 09:49:12 +0000 (11:49 +0200)]
tests: SVGAnalyzer: add retrieval of edge stem to GraphvizEdge

2 years agotests: SVGAnalyzer: add finding of child of specific type to SVGElement
Magnus Jacobsson [Wed, 24 Aug 2022 09:50:35 +0000 (11:50 +0200)]
tests: SVGAnalyzer: add finding of child of specific type to SVGElement

2 years agotests: test_edge_node_overlap_utilities: add support for edge direction
Magnus Jacobsson [Wed, 14 Sep 2022 07:29:11 +0000 (09:29 +0200)]
tests: test_edge_node_overlap_utilities: add support for edge direction

2 years agoadd new test_min_edge_node_overlap_polygon_node_shapes test
Magnus Jacobsson [Wed, 14 Sep 2022 13:28:15 +0000 (15:28 +0200)]
add new test_min_edge_node_overlap_polygon_node_shapes test

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agoadd new test_max_edge_node_overlap_polygon_node_shapes test
Magnus Jacobsson [Wed, 14 Sep 2022 13:19:59 +0000 (15:19 +0200)]
add new test_max_edge_node_overlap_polygon_node_shapes test

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agoadd new test_edge_node_overlap_polygon_node_shapes test
Magnus Jacobsson [Sun, 28 Aug 2022 19:58:57 +0000 (21:58 +0200)]
add new test_edge_node_overlap_polygon_node_shapes test

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agoadd new test_edge_node_overlap_all_node_shapes test
Magnus Jacobsson [Wed, 14 Sep 2022 20:13:37 +0000 (22:13 +0200)]
add new test_edge_node_overlap_all_node_shapes test

2 years agoadd new test_max_edge_node_overlap_simple test
Magnus Jacobsson [Tue, 13 Sep 2022 08:35:48 +0000 (10:35 +0200)]
add new test_max_edge_node_overlap_simple test

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agoadd new test_min_edge_node_overlap_simple test
Magnus Jacobsson [Tue, 13 Sep 2022 08:26:35 +0000 (10:26 +0200)]
add new test_min_edge_node_overlap_simple test

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agotests: test_edge_node_overlap_utilities: check edge/node min overlap
Magnus Jacobsson [Wed, 24 Aug 2022 14:32:25 +0000 (16:32 +0200)]
tests: test_edge_node_overlap_utilities: check edge/node min overlap

2 years agotests: test_edge_node_overlap_utilities: make max node/edge overlap check optional
Magnus Jacobsson [Tue, 13 Sep 2022 07:46:59 +0000 (09:46 +0200)]
tests: test_edge_node_overlap_utilities: make max node/edge overlap check optional

This is currently a no-op since the max overlap check is always
enabled in the currently existing test case, but an upcoming commit
will introduce a test case checking minimum overlap only.

An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

2 years agotests: test_edge_node_overlap_utilities: use a semi-transparent color
Magnus Jacobsson [Tue, 13 Sep 2022 18:14:47 +0000 (20:14 +0200)]
tests: test_edge_node_overlap_utilities: use a semi-transparent color

This makes it easier to see overlaps.

2 years agotests: test_edge_node_overlap_utilities: support all rank directions
Magnus Jacobsson [Wed, 14 Sep 2022 07:28:10 +0000 (09:28 +0200)]
tests: test_edge_node_overlap_utilities: support all rank directions

2 years agotests: test_edge_node_overlap_simple: generate DOT based on options
Magnus Jacobsson [Tue, 13 Sep 2022 11:00:51 +0000 (13:00 +0200)]
tests: test_edge_node_overlap_simple: generate DOT based on options

Generate DOT source based on given options which are also passed to
the check function. Upcoming commits will add checks which need to
know details about how the graph was generated.

2 years agotests: add AUTO_NAME macro and use it in the test_edge_node_overlap_simple test
Magnus Jacobsson [Sun, 18 Sep 2022 09:56:44 +0000 (11:56 +0200)]
tests: add AUTO_NAME macro and use it in the test_edge_node_overlap_simple test

This ensures that the generated artifact file names begin with the
same name as the test case file (thanks @smattr).

2 years agoMerge branch 'smattr/b18ec0fb-7dc6-4b8b-9a97-301e697ada52' into 'main'
Matthew Fernandez [Tue, 20 Sep 2022 15:37:01 +0000 (15:37 +0000)]
Merge branch 'smattr/b18ec0fb-7dc6-4b8b-9a97-301e697ada52' into 'main'

sparse: more progress towards using cgraph wrappers for allocation

See merge request graphviz/graphviz!2844

2 years agosparse: remove unused 'Dijkstra_masked'
Matthew Fernandez [Thu, 15 Sep 2022 01:48:08 +0000 (18:48 -0700)]
sparse: remove unused 'Dijkstra_masked'

2 years agosparse: remove unused 'SparseMatrix_level_sets_khops'
Matthew Fernandez [Thu, 15 Sep 2022 01:46:33 +0000 (18:46 -0700)]
sparse: remove unused 'SparseMatrix_level_sets_khops'

2 years agosparse: remove unused 'SparseMatrix_distance_matrix_khops'
Matthew Fernandez [Thu, 15 Sep 2022 01:46:05 +0000 (18:46 -0700)]
sparse: remove unused 'SparseMatrix_distance_matrix_khops'

2 years agosfdpgen sfdpLayout: remove 'hops' parameter that is always -1
Matthew Fernandez [Thu, 15 Sep 2022 01:44:10 +0000 (18:44 -0700)]
sfdpgen sfdpLayout: remove 'hops' parameter that is always -1

2 years agosparse SparseMatrix_has_diagonal: use a C99 bool for return type
Matthew Fernandez [Thu, 15 Sep 2022 01:32:34 +0000 (18:32 -0700)]
sparse SparseMatrix_has_diagonal: use a C99 bool for return type

2 years agosparse: remove unnecessary casts
Matthew Fernandez [Thu, 15 Sep 2022 00:53:02 +0000 (17:53 -0700)]
sparse: remove unnecessary casts

2 years agosparse SparseMatrix_distance_matrix_khops: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 01:14:34 +0000 (18:14 -0700)]
sparse SparseMatrix_distance_matrix_khops: use cgraph wrappers 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.

2 years agosparse SparseMatrix_distance_matrix: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 01:14:10 +0000 (18:14 -0700)]
sparse SparseMatrix_distance_matrix: use cgraph wrappers 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.

2 years agosparse SparseMatrix_set_entries_to_real_one: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 01:11:18 +0000 (18:11 -0700)]
sparse SparseMatrix_set_entries_to_real_one: 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.

2 years agosparse SparseMatrix_get_submatrix: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 01:10:43 +0000 (18:10 -0700)]
sparse SparseMatrix_get_submatrix: use cgraph wrappers 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.

2 years agosparse SparseMatrix_get_augmented: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 01:09:49 +0000 (18:09 -0700)]
sparse SparseMatrix_get_augmented: use cgraph wrappers 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.

2 years agosparse SparseMatrix_decompose_to_supervari…: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 01:09:07 +0000 (18:09 -0700)]
sparse SparseMatrix_decompose_to_supervari…: use cgraph wrappers 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.

2 years agosparse Dijkstra_internal: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 01:01:23 +0000 (18:01 -0700)]
sparse Dijkstra_internal: use cgraph wrappers 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.

2 years agosparse SparseMatrix_weakly_connected_compone…: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:58:56 +0000 (17:58 -0700)]
sparse SparseMatrix_weakly_connected_compone…: 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.

2 years agosparse SparseMatrix_level_sets_internal: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:58:32 +0000 (17:58 -0700)]
sparse SparseMatrix_level_sets_internal: 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.

2 years agosparse SparseMatrix_get_real_adjacency_matri…: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:57:50 +0000 (17:57 -0700)]
sparse SparseMatrix_get_real_adjacency_matri…: 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.

2 years agosparse SparseMatrix_sum_repeat_entries: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:57:23 +0000 (17:57 -0700)]
sparse SparseMatrix_sum_repeat_entries: 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.

2 years agosparse SparseMatrix_multiply3: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:56:27 +0000 (17:56 -0700)]
sparse SparseMatrix_multiply3: 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.

2 years agosparse SparseMatrix_multiply: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:56:03 +0000 (17:56 -0700)]
sparse SparseMatrix_multiply: 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.

2 years agosparse SparseMatrix_multiply_vector: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:55:32 +0000 (17:55 -0700)]
sparse SparseMatrix_multiply_vector: use cgraph wrappers 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.

2 years agosparse SparseMatrix_multiply_dense1: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:54:58 +0000 (17:54 -0700)]
sparse SparseMatrix_multiply_dense1: 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.

2 years agosparse SparseMatrix_add: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:54:15 +0000 (17:54 -0700)]
sparse SparseMatrix_add: 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.

2 years agosparse SparseMatrix_realloc: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:53:49 +0000 (17:53 -0700)]
sparse SparseMatrix_realloc: use cgraph wrappers 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.

2 years agosparse SparseMatrix_alloc: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:53:20 +0000 (17:53 -0700)]
sparse SparseMatrix_alloc: use cgraph wrappers 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.

2 years agosparse SparseMatrix_init: use cgraph wrappers for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:51:02 +0000 (17:51 -0700)]
sparse SparseMatrix_init: use cgraph wrappers 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.

2 years agosparse SparseMatrix_is_symmetric: use cgraph wrapper for allocation
Matthew Fernandez [Thu, 15 Sep 2022 00:50:09 +0000 (17:50 -0700)]
sparse SparseMatrix_is_symmetric: 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.

2 years agosparse SparseMatrix_level_sets_internal: fix unchecked allocation failure
Matthew Fernandez [Thu, 15 Sep 2022 00:47:27 +0000 (17:47 -0700)]
sparse SparseMatrix_level_sets_internal: fix unchecked allocation failure

2 years agosparse SparseMatrix_multiply: remove redundant stores
Matthew Fernandez [Thu, 15 Sep 2022 00:40:46 +0000 (17:40 -0700)]
sparse SparseMatrix_multiply: remove redundant stores

2 years agoMerge branch 'addingLayout' into 'main'
Mark Hansen [Mon, 19 Sep 2022 10:05:01 +0000 (10:05 +0000)]
Merge branch 'addingLayout' into 'main'

Remove addingLayout.txt, it's moved to docs repo

See merge request graphviz/graphviz!2846

2 years agoRemove addingLayout.txt, it's moved to docs repo
Mark Hansen [Fri, 16 Sep 2022 11:01:32 +0000 (21:01 +1000)]
Remove addingLayout.txt, it's moved to docs repo

Converted to markdown for the website at
https://gitlab.com/graphviz/graphviz.gitlab.io/-/merge_requests/543

No need to maintain two versions of this doc.

2 years agoMerge branch 'smattr/5c9272a3-ec5f-4e9c-b602-d3ea249fca61' into 'main'
Matthew Fernandez [Wed, 14 Sep 2022 15:46:05 +0000 (15:46 +0000)]
Merge branch 'smattr/5c9272a3-ec5f-4e9c-b602-d3ea249fca61' into 'main'

gvc auto_output_filename: avoid 'strdup' when constructing file name

See merge request graphviz/graphviz!2842

2 years agogvc auto_output_filename: avoid 'strdup' when constructing file name
Matthew Fernandez [Wed, 14 Sep 2022 00:47:29 +0000 (17:47 -0700)]
gvc auto_output_filename: avoid 'strdup' when constructing file name

This is a reattempt of 4291cc769a3eeef8b1c171e5479194733a4da6cd. The first
attempt introduced a bug where the separating `.` was not accounted for and
accidentally truncated. It was reverted in
8d662734b6a34709d9475b120e7ce3de872339e2. The present commit takes much the same
approach but ensures to account for the separating `.`.

Quoting 4291cc769a3eeef8b1c171e5479194733a4da6cd:

  This block of code is scanning a string of `:`-separated entries and writing
  them into `buf` in reverse order `.`-separated. We can rewrite it to avoid
  dynamic allocation, thus avoiding certain failure cases and locking overhead.

  Unfortunately there seems to be no variant of `strrchr` that takes a length.
  So we need to write our own loop for locating the last `:` with a limit.

2 years agoMerge branch 'smattr/20c2522e-ce15-4384-b177-d4f70bcac753' into 'main'
Matthew Fernandez [Wed, 14 Sep 2022 14:45:36 +0000 (14:45 +0000)]
Merge branch 'smattr/20c2522e-ce15-4384-b177-d4f70bcac753' into 'main'

dotgen: progress on using cgraph wrappers for allocation

See merge request graphviz/graphviz!2843

2 years agoremove unnecessary 'ND_alg' casts
Matthew Fernandez [Wed, 14 Sep 2022 01:46:49 +0000 (18:46 -0700)]
remove unnecessary 'ND_alg' casts

2 years agodotgen cloneNode: squash -Wsign-conversion warning
Matthew Fernandez [Wed, 14 Sep 2022 01:40:02 +0000 (18:40 -0700)]
dotgen cloneNode: squash -Wsign-conversion warning

2 years agodotgen make_regular_edge: use cgraph wrappers for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:38:00 +0000 (18:38 -0700)]
dotgen make_regular_edge: use cgraph wrappers 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.

2 years agodotgen make_flat_adj_edges: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:37:36 +0000 (18:37 -0700)]
dotgen make_flat_adj_edges: 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.

2 years agodotgen makeSimpleFlatLabels: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:36:42 +0000 (18:36 -0700)]
dotgen makeSimpleFlatLabels: 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.

2 years agodotgen cloneNode: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:36:17 +0000 (18:36 -0700)]
dotgen cloneNode: 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.

2 years agodotgen cloneGraph: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:35:49 +0000 (18:35 -0700)]
dotgen cloneGraph: 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.

2 years agodotgen _dot_splines: use cgraph wrappers for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:35:25 +0000 (18:35 -0700)]
dotgen _dot_splines: use cgraph wrappers 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.

2 years agodotgen swap_spline: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:34:56 +0000 (18:34 -0700)]
dotgen swap_spline: 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.

2 years agodotgen swap_bezier: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:34:19 +0000 (18:34 -0700)]
dotgen swap_bezier: 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.

2 years agodotgen applyPacking2: use cgraph wrapper for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:24:25 +0000 (18:24 -0700)]
dotgen applyPacking2: 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.

2 years agodotgen computeLayerWidths: use cgraph wrappers for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:24:01 +0000 (18:24 -0700)]
dotgen computeLayerWidths: use cgraph wrappers 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.

2 years agodotgen computeNodeGroups: use cgraph wrappers for allocation
Matthew Fernandez [Wed, 14 Sep 2022 01:23:36 +0000 (18:23 -0700)]
dotgen computeNodeGroups: use cgraph wrappers 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.

2 years agodotgen: use a bit array for 'layerWidthInfo_t.removed'
Matthew Fernandez [Wed, 14 Sep 2022 01:17:29 +0000 (18:17 -0700)]
dotgen: use a bit array for 'layerWidthInfo_t.removed'

By using a `bitarray_t` instead of an array of integers for this array of
boolean values, we swap a 32-bits-per-boolean representation for a
1-bit-per-boolean representation. This reduces heap pressure, and in the case of
smaller arrays avoids heap allocation altogether.