Matthew Fernandez [Thu, 8 Apr 2021 03:58:25 +0000 (20:58 -0700)]
represent route array lengths as size_t
This fixes one -Wsign-conversion warning, though introduces a -Wconversion
warning. We should be able to remove the latter as we continue cleaning up the
use of int for sizes.
Matthew Fernandez [Thu, 8 Apr 2021 03:54:07 +0000 (20:54 -0700)]
remove some commented out code
Matthew Fernandez [Thu, 8 Apr 2021 03:44:02 +0000 (20:44 -0700)]
squash a -Wsign-conversion warning
Matthew Fernandez [Thu, 8 Apr 2021 03:39:19 +0000 (20:39 -0700)]
squash a -Wmissing-prototypes warning
Matthew Fernandez [Thu, 8 Apr 2021 03:33:40 +0000 (20:33 -0700)]
squash some -Wunused-parameter warnings
Matthew Fernandez [Thu, 8 Apr 2021 03:30:10 +0000 (20:30 -0700)]
squash two -Wswitch-default warnings
Matthew Fernandez [Thu, 8 Apr 2021 02:55:01 +0000 (19:55 -0700)]
squash a -Wswitch-default warning
Matthew Fernandez [Thu, 8 Apr 2021 02:51:54 +0000 (19:51 -0700)]
squash a -Wswitch-default warning
Matthew Fernandez [Thu, 8 Apr 2021 02:50:53 +0000 (19:50 -0700)]
squash some -Wunused-parameter warnings
Matthew Fernandez [Thu, 8 Apr 2021 02:44:10 +0000 (19:44 -0700)]
use a stronger type to squash a -Wconversion warning
Matthew Fernandez [Thu, 8 Apr 2021 02:42:25 +0000 (19:42 -0700)]
remove unused parameter route_list from assignTracks
Matthew Fernandez [Thu, 8 Apr 2021 02:41:33 +0000 (19:41 -0700)]
remove unused parameter nrtes from assignTracks
Matthew Fernandez [Sat, 17 Apr 2021 21:01:28 +0000 (21:01 +0000)]
Merge branch 'smattr/
CC513531-8BFC-4587-8816-
4E41C4672694' into 'main'
some clean up of sfextern.c
See merge request graphviz/graphviz!1888
Matthew Fernandez [Tue, 6 Apr 2021 02:56:19 +0000 (19:56 -0700)]
swap some use of hand rolled NIL for the standard NULL
Matthew Fernandez [Tue, 6 Apr 2021 02:52:23 +0000 (19:52 -0700)]
remove unnecessary global initialization
This structure is default-0-initialized.
Matthew Fernandez [Sat, 17 Apr 2021 20:06:29 +0000 (20:06 +0000)]
Merge branch 'smattr/
5D993CF4-B158-4D08-AEFE-
FC86452B0FF9' into 'main'
Move back to 2.47 development series
See merge request graphviz/graphviz!1904
Matthew Fernandez [Sat, 17 Apr 2021 19:20:32 +0000 (12:20 -0700)]
Move back to 2.47 development series
Matthew Fernandez [Sat, 17 Apr 2021 19:19:13 +0000 (19:19 +0000)]
Merge branch 'smattr/
5689080F-D576-43E6-99D5-
B96A4E4D6D98' into 'main'
Stable release 2.47.1
See merge request graphviz/graphviz!1897
Matthew Fernandez [Sun, 11 Apr 2021 23:23:48 +0000 (16:23 -0700)]
Stable release 2.47.1
Mark Hansen [Wed, 14 Apr 2021 10:10:01 +0000 (10:10 +0000)]
Merge branch 'fopen' into 'main'
Output more useful error message on fopen failure
See merge request graphviz/graphviz!1901
Mark Hansen [Tue, 13 Apr 2021 09:20:26 +0000 (19:20 +1000)]
Output more useful error message on fopen failure
This should help with bugs like
https://gitlab.com/graphviz/graphviz.gitlab.io/-/issues/86
Matthew Fernandez [Sat, 10 Apr 2021 22:33:36 +0000 (22:33 +0000)]
Merge branch 'smattr/
556EAFC0-B0EF-4141-AB81-
47E2C24419F9' into 'main'
squash C++ warnings
See merge request graphviz/graphviz!1881
Matthew Fernandez [Sat, 3 Apr 2021 02:26:49 +0000 (19:26 -0700)]
remove an unused variable
Squashes a -Wunused-but-set-variable warning.
Matthew Fernandez [Sat, 3 Apr 2021 02:21:20 +0000 (19:21 -0700)]
squash -Wunused-parameter warnings
Matthew Fernandez [Sat, 3 Apr 2021 02:06:48 +0000 (19:06 -0700)]
squash -Wunused-parameter warnings
Matthew Fernandez [Fri, 9 Apr 2021 04:02:54 +0000 (21:02 -0700)]
LASI plugin: remove use of endl
This is generally considered an anti-pattern in C++ these days.
Matthew Fernandez [Sat, 10 Apr 2021 01:50:44 +0000 (18:50 -0700)]
LASI plugin: remove unnecessary use of a pointer
Matthew Fernandez [Fri, 9 Apr 2021 03:27:46 +0000 (20:27 -0700)]
LASI plugin: use job context instead of globals
The LASI plugin was using two global variables, making it impossible to process
multiple graphs with it at the same time. This change refactors it to use the
jobs context as other rendering plugins do.
Matthew Fernandez [Sat, 3 Apr 2021 02:00:27 +0000 (19:00 -0700)]
delete commented out code
Matthew Fernandez [Sat, 3 Apr 2021 01:56:33 +0000 (18:56 -0700)]
remove useless code
This was added in the initial commit of VPSC,
03c20a55c921ac07599be2ae19ae34209ec0d02e. The comment was incorrect. This does
*not* limit iteration because the variable type is unsigned. That is, it is
always >= 0. This was caught by enabling CXXFLAGS+=-Wtype-limits.
Matthew Fernandez [Sat, 3 Apr 2021 01:54:18 +0000 (18:54 -0700)]
squash a -Wparentheses warning
Matthew Fernandez [Sat, 3 Apr 2021 01:52:29 +0000 (18:52 -0700)]
squash a -Wmisleading-indentation warning
Matthew Fernandez [Sat, 10 Apr 2021 20:30:24 +0000 (20:30 +0000)]
Merge branch 'smattr/
1F78CB9B-13C5-4885-BAFA-
8CB840D952FB' into 'main'
general clean up
See merge request graphviz/graphviz!1886
Matthew Fernandez [Sun, 4 Apr 2021 04:30:33 +0000 (21:30 -0700)]
push a definition closer to its use
Matthew Fernandez [Sun, 4 Apr 2021 04:17:29 +0000 (21:17 -0700)]
remove unused Info variable
Matthew Fernandez [Sun, 4 Apr 2021 02:42:41 +0000 (19:42 -0700)]
remove unused SFIO Version
Matthew Fernandez [Sun, 4 Apr 2021 02:40:03 +0000 (19:40 -0700)]
abbreviate some arithmetic
Matthew Fernandez [Sun, 4 Apr 2021 02:39:51 +0000 (19:39 -0700)]
remove some unnecessary bracketing
Matthew Fernandez [Sun, 4 Apr 2021 02:22:21 +0000 (19:22 -0700)]
remove some unnecessary casts
These pointers coerce implicitly.
Matthew Fernandez [Sun, 4 Apr 2021 02:14:56 +0000 (19:14 -0700)]
remove some commented out code
Matthew Fernandez [Sun, 4 Apr 2021 02:10:28 +0000 (19:10 -0700)]
mark Origin as static const
This variable is not modified or used outside this file.
Matthew Fernandez [Sat, 10 Apr 2021 03:00:53 +0000 (03:00 +0000)]
Merge branch 'smattr/
30a4bc3c-4d5a-4130-8a78-
60712ab9805e' into 'main'
replace a use of sfstropen with malloc+vsnprintf
See merge request graphviz/graphviz!1884
Matthew Fernandez [Sat, 3 Apr 2021 20:13:02 +0000 (13:13 -0700)]
replace a use of sfstropen with malloc+vsnprintf
This is another step towards removing uses of sfstropen in the code base.
Related to #1873.
Matthew Fernandez [Sat, 3 Apr 2021 19:44:43 +0000 (12:44 -0700)]
add missing #include
Matthew Fernandez [Sat, 10 Apr 2021 02:05:56 +0000 (02:05 +0000)]
Merge branch 'smattr/
19cb473f-0226-41d2-9f69-
0fc1b45513ef' into 'main'
remove another use of setjmp/longjmp
See merge request graphviz/graphviz!1883
Matthew Fernandez [Sat, 3 Apr 2021 19:35:30 +0000 (12:35 -0700)]
remove now-unused jmp_buf
Related to #1801.
Matthew Fernandez [Sat, 3 Apr 2021 19:34:52 +0000 (12:34 -0700)]
return NULL from deriveGraph to indicate failure
Related to #1801.
Matthew Fernandez [Sat, 3 Apr 2021 19:33:22 +0000 (12:33 -0700)]
anticipate a NULL return from deriveGraph
Related to #1801.
Matthew Fernandez [Sat, 3 Apr 2021 19:32:05 +0000 (12:32 -0700)]
anticipate failure from layout
Related to #1801.
Matthew Fernandez [Sat, 3 Apr 2021 19:31:08 +0000 (12:31 -0700)]
add a return value to layout
Related to #1801.
Matthew Fernandez [Sat, 3 Apr 2021 19:28:59 +0000 (12:28 -0700)]
anticipate failure from fdpLayout
Related to #1801.
Matthew Fernandez [Sat, 3 Apr 2021 19:27:56 +0000 (12:27 -0700)]
add a return value to fdpLayout
Related to #1801.
Matthew Fernandez [Sat, 3 Apr 2021 19:22:42 +0000 (12:22 -0700)]
delete commented out code
Matthew Fernandez [Sat, 10 Apr 2021 01:21:47 +0000 (18:21 -0700)]
Merge remote-tracking branch 'origin/smattr/
1EBF65AE-6292-4A55-B9E5-
A01E28911B08' into main
Matthew Fernandez [Sat, 3 Apr 2021 17:56:00 +0000 (10:56 -0700)]
allow macOS CI tasks to run immediately
The macOS tasks were, by default, blocking on the portable source generation.
However these tasks do not use the portable source or any prior stage’s
artifacts. Now that we have moved to shared macOS runners without caching, the
macOS CI tasks are the limiting factor on CI runtime. Cutting this dependency
should meaningfully impact this.
Matthew Fernandez [Sat, 3 Apr 2021 18:50:37 +0000 (11:50 -0700)]
propagate COLLECTION from macOS CI build tasks to macOS CI test tasks
This is more straightforward and reliable than trying to keep multiple places
where we manually set the collection coherent.
Matthew Fernandez [Sat, 3 Apr 2021 18:46:35 +0000 (11:46 -0700)]
fix: propagate VERSION from macOS build tasks to macOS CI test tasks
The macOS test tasks in CI were picking up the VERSION from the portable source
task, despite their build tasks using a different process to derive VERSION.
This change ensures they get the VERSION file their build task created.
Magnus Jacobsson [Fri, 9 Apr 2021 18:08:29 +0000 (18:08 +0000)]
Merge branch 'fix-strcpy-param-overlap' into 'main'
Fix AddressSanitizer: strcpy-param-overlap in gvconfig_libdir
Closes #1994
See merge request graphviz/graphviz!1887
Magnus Jacobsson [Sun, 4 Apr 2021 14:54:29 +0000 (16:54 +0200)]
Fix AddressSanitizer: strcpy-param-overlap in gvconfig_libdir
Fixes https://gitlab.com/graphviz/graphviz/-/issues/1994.
Matthew Fernandez [Thu, 8 Apr 2021 05:04:25 +0000 (05:04 +0000)]
Merge branch 'smattr/
19C32E28-7A45-406A-A700-
B74AB173D7FE' into 'main'
remove inlining of flip_rec_box
See merge request graphviz/graphviz!1880
Matthew Fernandez [Fri, 2 Apr 2021 00:03:37 +0000 (17:03 -0700)]
remove inlining of flip_rec_box
With a modern compiler, the inline keyword is more or less ignored and the
compiler makes a (usually better) decision itself.
Matthew Fernandez [Thu, 8 Apr 2021 02:43:35 +0000 (02:43 +0000)]
Merge branch 'smattr/
1DFCCF93-D5FA-4443-A701-
9C65CC090280' into 'main'
fix computation of minimum graph rank on large graphs
See merge request graphviz/graphviz!1879
Matthew Fernandez [Fri, 2 Apr 2021 00:02:19 +0000 (17:02 -0700)]
fix computation of minimum graph rank on large graphs
This code was using MAXSHORT as the maximum (unrealistically large) rank. That
is, start out with this value and assume all nodes will rank below this so we
can progressively step down. This was likely correct when the code was first
written. However,
97cb5fffdcaa97eadb76a9b82a026d084a6a94d9 altered the type used
for storing ranks from short to int to support larger graphs. That is, nodes in
a graph are now anticipated to have ranks in excess of 32767 (on e.g. x86). This
change did not update these algorithms to compensate.
The effect of this is that any graph whose nodes were all ranked >32767 would be
incorrectly judged to have a minimum rank of 32767. The present change fixes
this by realigning this to the limit of the new ranking type.
Note that this removes the last use MAXSHORT in the code base. Unfortunately we
cannot easily remove its definition without breaking API because the containing
header lib/common/arith.h is shipped.
Matthew Fernandez [Wed, 7 Apr 2021 05:12:57 +0000 (05:12 +0000)]
Merge branch 'smattr/
BC4B3197-1AC8-4F9E-BCB8-
CDF5BFE64A0D' into 'main'
use smart pointers to clean up Visio::Graphics
See merge request graphviz/graphviz!1878
Matthew Fernandez [Thu, 1 Apr 2021 03:21:38 +0000 (20:21 -0700)]
optimize some size()>0 checks
The implementation of empty() is typically more efficient.
Matthew Fernandez [Thu, 1 Apr 2021 02:12:35 +0000 (19:12 -0700)]
use C++11 in-class member initialization to remove the need for an explicit ctor
This is an equivalent way of saying the same thing.
Matthew Fernandez [Thu, 1 Apr 2021 02:08:44 +0000 (19:08 -0700)]
remove some explicit constructor calls
These constructors are all called implicitly already.
Matthew Fernandez [Thu, 1 Apr 2021 02:05:30 +0000 (19:05 -0700)]
use range-based for loops to clean up some manual iteration
Note that in once instance this modifies a loop that was skipping the first
element to not skip it. But this is a no-op the compiler should see through.
Matthew Fernandez [Thu, 1 Apr 2021 01:55:16 +0000 (18:55 -0700)]
store Graphics as managed pointers in Visio::Render instead of raw pointers
This lets us clean up some manual handling of these and stop worrying about
memory management. Note that Visio::Render::ClearGraphicsAndTexts touched in
this commit is effectively a hand written destructor for this class. Presumably
it was implemented in a time before destructors were standardized. We can likely
move the other collections affected here to using smart pointers too and remove
this function entirely eventually.
Matthew Fernandez [Thu, 1 Apr 2021 01:42:00 +0000 (18:42 -0700)]
take a reference instead of a pointer in Visio::Render::PrintEdgeShape
Similar to the previous commits, this function assumes its input pointer is
non-null, so we may as well use the more convenient C++ syntax for this. This
will also ease some upcoming changes to convert the underlying raw pointers to
smart pointers.
Matthew Fernandez [Thu, 1 Apr 2021 01:38:57 +0000 (18:38 -0700)]
take a reference instead of a pointer in Visio::Render::PrintInnerShape
Similar to the previous commit, this function assumes its input pointer is
non-null, so we may as well use the more convenient C++ syntax for this. This
will also ease some upcoming changes to convert the underlying raw pointers to
smart pointers.
Matthew Fernandez [Thu, 1 Apr 2021 01:36:37 +0000 (18:36 -0700)]
take a reference instead of a pointer in Visio::Render::PrintOuterShape
This function assumes its input pointer is non-null, so we may as well use the
more convenient C++ syntax for this. This will also ease some upcoming changes
to convert the underlying raw pointers to smart pointers.
Matthew Fernandez [Thu, 1 Apr 2021 01:27:50 +0000 (18:27 -0700)]
remove const qualifier on Visio::Graphics
Using a const qualifier on the element type of an STL container is usually an
anti-pattern. In this case, doubly so, because Visio::Render does not treat
elements of such a vector as const.
Matthew Fernandez [Thu, 1 Apr 2021 01:23:45 +0000 (18:23 -0700)]
remove const qualifier from Visio::Render::AddGraphic argument
This pointer is not treated as const internally by Visio::Render. This is a step
towards removing manual memory management of Graphic pointers.
Matthew Fernandez [Tue, 6 Apr 2021 15:36:56 +0000 (15:36 +0000)]
Merge branch 'smattr/
72E0571B-88AC-4CBC-AC52-
ABB391482FDB' into 'main'
fix: do not recognize "&;" as an XML escape sequence
Closes #797
See merge request graphviz/graphviz!1876
Matthew Fernandez [Wed, 31 Mar 2021 04:27:08 +0000 (21:27 -0700)]
fix: do not recognize "&;" as an XML escape sequence
xml_isentity was incorrectly recognizing "&;" as an escape sequence. Despite
vague wording in the standard, it seems fairly clear that &<name>; is only
intended to be a valid escape sequence when <name> is non-empty. Fixes #797.
Note that unfortunately due to #1868, we need to fix this bug four times in
copy-pasted versions of the same function.
Matthew Fernandez [Wed, 31 Mar 2021 04:18:54 +0000 (21:18 -0700)]
add a test case for #797
Matthew Fernandez [Tue, 6 Apr 2021 03:16:31 +0000 (03:16 +0000)]
Merge branch 'smattr/
8D352476-8903-4236-8AE7-
1C1DA75CC4B8' into 'main'
remove internal definitions of NULL
See merge request graphviz/graphviz!1875
Matthew Fernandez [Wed, 31 Mar 2021 02:08:49 +0000 (19:08 -0700)]
remove internal definitions of NULL
ISO C guarantees this to exist via stddef.h or stdlib.h.
Matthew Fernandez [Wed, 31 Mar 2021 02:07:52 +0000 (19:07 -0700)]
include stddef.h in some files that are using NULL
These were relying on picking up NULL through one of their other includes. We
are about to remove some internal definitions of NULL that may affect this, so
adding explicit stddef.h includes guards against these upcoming changes.
Matthew Fernandez [Wed, 31 Mar 2021 02:07:28 +0000 (19:07 -0700)]
remove stray line feed characters
Matthew Fernandez [Wed, 31 Mar 2021 02:06:55 +0000 (19:06 -0700)]
remove unhelpful comment
Matthew Fernandez [Wed, 31 Mar 2021 02:06:40 +0000 (19:06 -0700)]
remove some commented out code
Matthew Fernandez [Sun, 4 Apr 2021 17:30:12 +0000 (17:30 +0000)]
Merge branch 'smattr/
20D31C39-98CB-43AC-89A4-
D37C86FA81E3' into 'main'
clean up lib/twopigen/circle.c
See merge request graphviz/graphviz!1874
Matthew Fernandez [Mon, 29 Mar 2021 04:55:40 +0000 (21:55 -0700)]
swap an unnecessary MAX call for fmax
Matthew Fernandez [Mon, 29 Mar 2021 04:48:50 +0000 (21:48 -0700)]
move some definitions closer to their usage
Matthew Fernandez [Mon, 29 Mar 2021 04:34:38 +0000 (21:34 -0700)]
more precise return type for isLeaf
Matthew Fernandez [Mon, 29 Mar 2021 04:30:40 +0000 (21:30 -0700)]
squash -Wcompare, -Wconversion, -Wsign-convertion warnings
Matthew Fernandez [Mon, 29 Mar 2021 04:26:48 +0000 (21:26 -0700)]
squash some -Wsign-compare warnings
Matthew Fernandez [Mon, 29 Mar 2021 04:01:37 +0000 (21:01 -0700)]
squash a -Wsign-compare and a -Wconversion compiler warnings
Matthew Fernandez [Mon, 29 Mar 2021 03:56:03 +0000 (20:56 -0700)]
remove some commented out code
Matthew Fernandez [Mon, 29 Mar 2021 03:53:42 +0000 (20:53 -0700)]
squash -Wconversion compiler warning
This also squashes a -Wsign-compare and a -Wsign-conversion warning.
Matthew Fernandez [Sun, 4 Apr 2021 05:47:52 +0000 (05:47 +0000)]
Merge branch 'smattr/
D2AA2D59-2982-42CC-9CA3-
374F58FDC5B2' into 'main'
fix: put HTML bit at the top of the count in reference counted strings
Closes #1984
See merge request graphviz/graphviz!1873
Matthew Fernandez [Mon, 29 Mar 2021 03:00:59 +0000 (20:00 -0700)]
simplify some debugging code
Matthew Fernandez [Mon, 29 Mar 2021 02:53:32 +0000 (19:53 -0700)]
remove unused struct name
Matthew Fernandez [Mon, 29 Mar 2021 02:51:51 +0000 (19:51 -0700)]
use a bitfield instead of shifting and masking for reference count in refstr.c
This performs the same operations, but asks the compiler to generate the
required shifts and masks instead of relying on the error prone process of doing
them manually.
Matthew Fernandez [Mon, 29 Mar 2021 02:37:08 +0000 (19:37 -0700)]
fix: put HTML bit at the top of the count in reference counted strings
lib/cgraph/refstr.c implements reference-counted strings with the structure
refstr_t. Since the initial commit of cgraph,
d7767d4b5c511afa89b46798eea4e2f915930844, HTML_BIT has been (IMHO incorrectly)
set based on unsigned int instead of unsigned long. Presumably this was not an
issue because most machines were 32-bit x86 at the time, where
sizeof(unsigned int) == sizeof(unsigned long).
In the transition to x86-64 machines, this setup became awkward. The reference
count is 8 bytes wide, but HTML_BIT is set to be bit 31. I.e. the bit indicating
that a string is HTML is now in the middle of the reference count. A string with
≥ 2³¹ references, something that is possible on an x86-64 machine, now
accidentally sets the HTML bit. Note that this ecosystem transition also made
the comment about HTML_BIT incorrect, /* msbit of unsigned long */.
d1244c8001e8c681def4c0ff25a91136845c2a75 did a tree-wide replacement of unsigned
long with uint64_t, which further compounded the situation. Now the HTML bit is
in the incorrect position on both 32-bit and 64-bit x86.
The present change fixes this by moving the HTML bit into bit 63 of the refcnt
field. Fixes #1984.
It is questionable whether this even needs to be a bitfield, and not simply a
uint64_t and a bool, but I think we should leave this space optimization in
place for now.
Matthew Fernandez [Sat, 3 Apr 2021 04:33:44 +0000 (04:33 +0000)]
Merge branch 'smattr/
f4713040-3ec5-4d22-9ea3-
48bdc47c1eae' into 'main'
remove a use of setjmp/longjmp
See merge request graphviz/graphviz!1871
Matthew Fernandez [Sat, 27 Mar 2021 20:17:33 +0000 (13:17 -0700)]
remove -Wshadow warning in conc.c
Matthew Fernandez [Sat, 27 Mar 2021 20:12:32 +0000 (13:12 -0700)]
remove now-unused jmp_buf
Related to #1801.