Matthew Fernandez [Sun, 6 Mar 2022 22:59:15 +0000 (14:59 -0800)]
pathplan dist: rephrase an open coded 'hypot'
Matthew Fernandez [Sun, 6 Mar 2022 22:58:33 +0000 (14:58 -0800)]
pathplan dist_n: rephrase an open coded 'hypot'
Matthew Fernandez [Sun, 6 Mar 2022 22:57:01 +0000 (14:57 -0800)]
topfish ddist: rephrase an open coded 'hypot'
Matthew Fernandez [Sun, 6 Mar 2022 22:56:01 +0000 (14:56 -0800)]
libmingle force_directed_edge_bundling: rephrase an open coded 'hypot'
Matthew Fernandez [Sun, 6 Mar 2022 22:52:55 +0000 (14:52 -0800)]
tclpathplan distance: rephrase an open coded 'hypot'
Matthew Fernandez [Sun, 6 Mar 2022 22:51:28 +0000 (14:51 -0800)]
topfish DIST: rephrase an open coded 'hypot'
Matthew Fernandez [Sun, 6 Mar 2022 22:50:21 +0000 (14:50 -0800)]
topfish compute_densities: rephrase an open coded 'hypot'
Matthew Fernandez [Wed, 9 Mar 2022 07:17:50 +0000 (07:17 +0000)]
Merge branch 'smattr/
EB5F6EF3-EB42-4C47-81F5-
90ED0C55B9FF' into 'main'
topfish: remove unmutated 'cur_level'
See merge request graphviz/graphviz!2496
Matthew Fernandez [Sun, 6 Mar 2022 03:26:00 +0000 (19:26 -0800)]
topfish: remove unmutated 'cur_level'
This file has a fairly strange structure where almost every use of `cur_level`
is actually referencing a local that shadows the global `cur_level`. The global
`cur_level` is never written to and remains 0 throughout execution, making it
somewhat useless.
Matthew Fernandez [Wed, 9 Mar 2022 06:02:58 +0000 (06:02 +0000)]
Merge branch 'smattr/
7557D547-EFFB-48E0-BB59-
4D61EF4FFB69' into 'main'
remove Criterion submodule
See merge request graphviz/graphviz!2501
Matthew Fernandez [Mon, 7 Mar 2022 00:47:16 +0000 (16:47 -0800)]
remove Criterion submodule
Criterion is a testing framework that has been used for writing Graphviz unit
tests in the past (see tests/unit_tests). These unit tests are not currently
enabled. However, Windows CI unconditionally checks out all submodules, thus
pulling in a version of Criterion that goes unused.
This change removes the previously described behavior. If/when the
Criterion-based unit tests are resurrected, an up to date version of Criterion
can be pulled in via a package manager or the Windows build dependencies
repository¹ instead.
This change should slightly accelerate Windows CI jobs.
¹ https://gitlab.com/graphviz/graphviz-build-utilities
Matthew Fernandez [Wed, 9 Mar 2022 03:58:57 +0000 (03:58 +0000)]
Merge branch 'smattr/
A4158690-8353-4D1F-911E-
C66D722F62F2' into 'main'
epsf_emit_body: minor clean up
See merge request graphviz/graphviz!2500
Matthew Fernandez [Sun, 6 Mar 2022 22:46:51 +0000 (14:46 -0800)]
epsf_emit_body: remove unnecessary parens and make some comparisons more obvious
Matthew Fernandez [Sun, 6 Mar 2022 22:44:48 +0000 (14:44 -0800)]
epsf_emit_body: remove local 'c'
This did not seem to be aiding readability.
Matthew Fernandez [Sun, 6 Mar 2022 22:42:45 +0000 (14:42 -0800)]
epsf_emit_body: undo a 'strcmp' micro-optimization
The preceding `%` checks are unnecessary to do separately. Modern compilers can
do this kind of optimization themselves.
Matthew Fernandez [Sun, 6 Mar 2022 23:19:00 +0000 (23:19 +0000)]
Merge branch 'smattr/
DCC4171E-CD52-49AB-A824-
0FAAA8F3BF4D' into 'main'
GD plugin: movement towards thread safety
See merge request graphviz/graphviz!2485
Matthew Fernandez [Wed, 2 Mar 2022 04:39:38 +0000 (20:39 -0800)]
GD plugin: remove unused 'GD2_RAW'
Matthew Fernandez [Tue, 1 Mar 2022 01:25:01 +0000 (17:25 -0800)]
GD plugin: use a dynamically allocated VRML rendering state instead of globals
This brings the affected code closer to being thread safe. The goal is to allow
(1) multiple threads to execute in this code safely as well as (2) multiple VRML
renderings on the same thread to be interleaved with each other.
Matthew Fernandez [Mon, 28 Feb 2022 16:13:08 +0000 (08:13 -0800)]
GD plugin: remove unnecessary common/utils.h include
This was introduced in
ff97490f4de09db950f708b1bf44a8f8f62902c5 in the same
commit that _removed_ all usage of `late_double` here, so it is unclear what the
intended meaning of the leading comment was.
Matthew Fernandez [Mon, 28 Feb 2022 16:06:40 +0000 (08:06 -0800)]
GD plugin: remove commented out globals
Matthew Fernandez [Sun, 6 Mar 2022 22:04:47 +0000 (22:04 +0000)]
Merge branch 'smattr/
784EA405-51D5-4078-9EF5-
3945503ECDED' into 'main'
DevIL plugin: only save output if image processing succeeded
See merge request graphviz/graphviz!2493
Matthew Fernandez [Sat, 5 Mar 2022 23:18:13 +0000 (15:18 -0800)]
DevIL plugin: only save output if image processing succeeded
As suggested during the review of !2488.¹
¹ https://gitlab.com/graphviz/graphviz/-/merge_requests/2488
Matthew Fernandez [Sat, 5 Mar 2022 23:17:56 +0000 (15:17 -0800)]
DevIL plugin: fix comment typo
Matthew Fernandez [Sun, 6 Mar 2022 20:21:58 +0000 (20:21 +0000)]
Merge branch 'smattr/
82FF01D9-153B-4619-AAAD-
E56F7D2F8CFD' into 'main'
Windows unistd.h shim: remove stdint.h types
See merge request graphviz/graphviz!2492
Matthew Fernandez [Sun, 6 Mar 2022 00:11:09 +0000 (16:11 -0800)]
Windows unistd.h shim: remove stdint.h types
MSVC, like every other C99 compliant platform, defines these in stdint.h.
Matthew Fernandez [Sun, 6 Mar 2022 17:56:35 +0000 (17:56 +0000)]
Merge branch 'smattr/
C0FA2163-3B08-4347-A288-
27C793B4FDF1' into 'main'
CI: remove metrics collection in Pylint job
See merge request graphviz/graphviz!2494
Matthew Fernandez [Sat, 5 Mar 2022 21:14:59 +0000 (13:14 -0800)]
CI: remove metrics collection in Pylint job
The Pylint job was running two checks:
1. Everything, with warning count piped to metrics.txt
2. Everything except the check for FIXMEs, hard failing if there is any
warning
The latter passes. That is, all Graphviz Python code is warning-free with the
exception of FIXMEs. Meanwhile FIXMEs are frequently _intentionally_ introduced
in test code, indicating a known open bug for which a test case is being added.
So metric collection in step 1 above is not relevant; we expect this number
often to go up. This commit removes the collection of this unused metric to
decrease CI complexity.
Matthew Fernandez [Sun, 6 Mar 2022 06:42:22 +0000 (06:42 +0000)]
Merge branch 'smattr/
82AC6B39-F94C-4ADA-BC89-
847305B0F7EB' into 'main'
Xlib plugin: squash sopm warnings
See merge request graphviz/graphviz!2491
Matthew Fernandez [Sat, 5 Mar 2022 18:38:44 +0000 (10:38 -0800)]
Xlib plugin: squash -Wsign-conversion warnings when setting 'normalhints'
Matthew Fernandez [Sat, 5 Mar 2022 18:37:22 +0000 (10:37 -0800)]
Xlib plugin: squash -Wsign-conversion warnings for 'w' and 'h'
Matthew Fernandez [Sat, 5 Mar 2022 18:35:18 +0000 (10:35 -0800)]
Xlib plugin: remove an unnecessary cast
Matthew Fernandez [Sat, 5 Mar 2022 18:35:03 +0000 (10:35 -0800)]
Xlib plugin: remove some unnecessary parens
Matthew Fernandez [Sat, 5 Mar 2022 18:27:55 +0000 (10:27 -0800)]
Xlib plugin: remove unused 'err' variable
The return value of `execvp` is irrelevant because this function only ever
returns when it fails. In this situation, the failure cause is in the `errno`
global, not in the return value.
Matthew Fernandez [Sat, 5 Mar 2022 18:26:08 +0000 (10:26 -0800)]
Xlib plugin: squash some -Wsign-conversion warnings
Matthew Fernandez [Sat, 5 Mar 2022 18:25:24 +0000 (10:25 -0800)]
Xlib plugin: squash some -Wsign-compare warnings
Matthew Fernandez [Sun, 6 Mar 2022 05:20:17 +0000 (05:20 +0000)]
Merge branch 'smattr/
24a2f3d2-0e9f-4ed5-9110-
a60af25348ca' into 'main'
gvc: [nfc] minor clean up
See merge request graphviz/graphviz!2482
Matthew Fernandez [Sat, 26 Feb 2022 22:16:26 +0000 (14:16 -0800)]
gvc: [nfc] remove parens around return value style
This is an idiom occasionally used to allow defining `return` as a macro that
does some additional instrumentation. This style has mostly fallen out of favor,
with mechanisms like `-finstrument-functions` instead used as a more robust way
of achieving the same thing.
Matthew Fernandez [Sat, 26 Feb 2022 22:01:18 +0000 (14:01 -0800)]
gvc: [nfc] remove unnecessary parens around use of 'write_fn'
Matthew Fernandez [Sat, 26 Feb 2022 22:00:05 +0000 (14:00 -0800)]
gvc: remove unnecessary parens around use of 'errorfn'
Matthew Fernandez [Sun, 6 Mar 2022 04:04:40 +0000 (04:04 +0000)]
Merge branch 'smattr/
FE85B9CB-54E3-4E97-81C3-
98188A35A353' into 'main'
rsvg plugin: squash some warnings
See merge request graphviz/graphviz!2489
Matthew Fernandez [Fri, 4 Mar 2022 16:11:34 +0000 (08:11 -0800)]
rsvg plugin: remove disabled 'g_type_term' code
The build system does not check for `g_type_term` so this code is always
disabled. More importantly though, I cannot locate any reference to a
`g_type_term` function that has ever existed anywhere except the Graphviz code
base. That is, it appears this has never been a librsvg or Glib function. The
commit message of its introduction in
9f4cb1fcb745b9b71c937980ef6b0d08552ead0f
also offers no enlightenment, only suggesting this was somehow related to Fedora
20.
Matthew Fernandez [Fri, 4 Mar 2022 16:08:15 +0000 (08:08 -0800)]
rsvg plugin: squash -Wsign-compare warnings for 'fileSize'
Matthew Fernandez [Fri, 4 Mar 2022 16:06:03 +0000 (08:06 -0800)]
rsvg plugin: remove unused 'result' variable
Matthew Fernandez [Sun, 6 Mar 2022 01:22:15 +0000 (01:22 +0000)]
Merge branch 'smattr/
DB16E9C9-0ECA-4F74-9078-
1763C301E445' into 'main'
sfio: remove 'access' prototype
See merge request graphviz/graphviz!2486
Matthew Fernandez [Wed, 2 Mar 2022 04:50:57 +0000 (20:50 -0800)]
sfio: remove 'access' prototype
The last use of `access` in SFIO was removed in
f552c0dece1435773de62334dee3310d1728e22f.
Matthew Fernandez [Sun, 6 Mar 2022 00:07:59 +0000 (00:07 +0000)]
Merge branch 'smattr/
422AF363-7D82-4831-8774-
334F85EBEC69' into 'main'
DevIL plugin: fix all compiler warnings
See merge request graphviz/graphviz!2488
Matthew Fernandez [Fri, 4 Mar 2022 06:03:31 +0000 (22:03 -0800)]
DevIL plugin: squash -Wsign-conversion warning for 'ilSaveF' call
The DevIL plugin provides a number of output devices for which it claims IDs
matching the DevIL `ILenum` types. That is, it effectively stashes the DevIL
output format in the Graphviz device ID. This change simply makes it more
obvious to the compiler that the translation back and forth is intentional. For
more information, see the DevIL manual.¹
¹ http://openil.sourceforge.net/docs/DevIL%20Manual.pdf
Matthew Fernandez [Fri, 4 Mar 2022 05:58:51 +0000 (21:58 -0800)]
DevIL plugin: remove unused 'rc' variable
According to the DevIL API docs,¹ any error from `ilTexImage` is reported via
`ilGetError`, not through its return value. Squashes a -Wunused-but-set-variable
warning.
¹ https://www-f9.ijs.si/~matevz/docs/DevIL/il/f00059.htm
Matthew Fernandez [Sat, 5 Mar 2022 20:58:09 +0000 (20:58 +0000)]
Merge branch 'smattr/
6ED69563-0D4E-4B8B-BFC5-
F55A459A529B' into 'main'
Pango plugin: fix: do not judge empty lines as failing during text layout
Closes #2179
See merge request graphviz/graphviz!2484
Matthew Fernandez [Mon, 28 Feb 2022 02:49:26 +0000 (18:49 -0800)]
Pango plugin: fix: do not judge empty lines as failing during text layout
Text layout plugins are expected to return failure as `false` from their
`textlayout` function. The Pango plugin considered failure to be anything that
resulted in a horizontal layout width of 0. However, this is not a failure in
the case where the text being laid out is the empty string; its horizontal width
is expected to be 0.
The effect of this was that HTML-like strings like `<<br/>1>` were judged to
fail during text layout and a (redundant) estimation of their text width was
performed. This seems to have been a latent bug present since commit
ad82ef8613b0731806b81f9c0047d0cbf6745470 (~July 2007). This recently became more
visible due to commit
7aa0dcc03ea20b544b2463d97fe4a78af699589c that introduced
warnings during text width estimation if a fallback metric needed to be used.
Users were now presented with “Warning: no hard-coded metrics” when using fonts
that Pango knew of and should not have needed estimation in the first place.
This fix makes the Pango plugin consider 0 width for the layout of an empty
string to be successful. To be clear, this commit is both a functional fix and a
performance improvement.
Gitlab: fixes #2179
Matthew Fernandez [Mon, 28 Feb 2022 02:48:29 +0000 (18:48 -0800)]
pango_textlayout: [nfc] remove an unnecessary 'void*' cast
Matthew Fernandez [Mon, 28 Feb 2022 02:39:55 +0000 (18:39 -0800)]
gvc: [nfc] remove unnecessary 'gvplugin_installed_t.features' casts
Matthew Fernandez [Mon, 28 Feb 2022 02:37:59 +0000 (18:37 -0800)]
gvc: [nfc] remove unnecessary 'gvplugin_installed_t.engine' casts
Matthew Fernandez [Mon, 28 Feb 2022 02:30:35 +0000 (18:30 -0800)]
tests: introduce a further variant of #2179
When working on a fix for this issue, we want to ensure we do not also affect
the case that currently (correctly) does not warn.
Matthew Fernandez [Sat, 5 Mar 2022 19:12:26 +0000 (19:12 +0000)]
Merge branch 'smattr/
48F581D5-5BD5-4555-8460-
C8B620B657CD-2' into 'main'
enable 'png:gd' format on macOS with CMake
See merge request graphviz/graphviz!2483
Matthew Fernandez [Sat, 26 Feb 2022 22:38:01 +0000 (14:38 -0800)]
CMake: enable libgd support on macOS when possible
As discussed in the comment in this commit, we hard code the options the
Homebrew libgd package is built with.¹ It seems not possible to build a libgd
without GIF support, so perhaps the `HAVE_GD_GIF` logic in the Graphviz code
base could be simplified in future.
Gitlab: #1786
¹ https://github.com/Homebrew/homebrew-core/blob/
1a7c405f0e4da91c378d1ebb73ee0d90b2775d32/Formula/gd.rb#L27-L48
Matthew Fernandez [Wed, 16 Feb 2022 21:00:10 +0000 (08:00 +1100)]
CMake: fix: link against pathplan when building GD plugin
This replicates something from the Autotools build system that was missing in
the CMake build system. The CMake build was not failing because the pathplan
dependency is only required when VRML support is enabled, which an upcoming
commit will add.
In contrast to the Autotools build system, this adds pathplan for all platforms,
not only Windows. Empirically it seems necessary on at least macOS and Windows
and it does no harm on Linux.
Gitlab: related to #1786
Matthew Fernandez [Sat, 26 Feb 2022 22:25:28 +0000 (14:25 -0800)]
CMake: only use 'gdlib-config' if libgd is found
This is mostly just over-cautiousness to not accidentally define variables like
`HAVE_GD_PNG` if we not have libgd. But it will also ease some upcoming
macOS-specific changes.
Gitlab: #1786
Matthew Fernandez [Sat, 5 Mar 2022 16:09:46 +0000 (16:09 +0000)]
Merge branch 'smattr/
A7432BFC-580E-4549-AF2D-
264543852168' into 'main'
CI: skip package uploading and deployment steps on non-release revisions
Closes #2139
See merge request graphviz/graphviz!2481
Matthew Fernandez [Sat, 26 Feb 2022 21:30:41 +0000 (13:30 -0800)]
CI: skip package uploading and deployment steps on non-release revisions
Traditionally CI has uploaded release artifacts and packaged a “release” for
every single commit on the main branch. These inter-release packages were
intended for testing and internal deployment. As far as we aware these are no
longer used; all Graphviz developers build from source and do not rely on
Gitlab’s generic package repository.¹
This change rearranges deployment steps to skip uploading artifacts and
packaging if the current commit is not a proper release. This should slightly
accelerate CI and reduce Graphviz storage requirements, which are currently at
>800GB on Gitlab.
Gitlab: closes #2139
¹ https://gitlab.com/graphviz/graphviz/-/packages
Matthew Fernandez [Sat, 5 Mar 2022 04:29:11 +0000 (20:29 -0800)]
Merge branch 'smattr/
876f5463-c9a4-40ef-b868-
bd113e6a01e1'
Matthew Fernandez [Sat, 26 Feb 2022 20:01:24 +0000 (12:01 -0800)]
fix gvpr corruption of dynamically allocated arguments to user-defined functions
Gvpr programs can define their own functions which can then be called within the
same program:
void foo(string s) {
print(s);
}
foo("bar");
This mostly worked. However in some cases the gvpr implementation was not
extending the lifetime of the memory allocated to store the passed in value
long enough. Enumerating the cases in which this occurred is complicated because
whether this (used-after-free) memory retained its intended content depended on
(1) the complexity of the expression of the passed in value and (2) what the
target function (`foo` in the above example) was itself doing. As a result, it
seems users mostly did not observe the problem (program/output corruption)
unless they were writing non-trivial functions and calling them with non-trivial
expressions.
Commit
8da53964edec8a665c3996d483df243eb150c2c4 compounded the above problem by
replacing the underlying allocator. While both before and after states use an
arena allocator,¹ the allocator after this change eagerly returns memory to the
backing system allocator (`malloc`) on `vmclear` while the allocator before this
change retained it within its own internal pool. The system allocator is used
much more pervasively in the Graphviz code base than the more tightly scoped
lib/vmalloc allocator, and it also typically does much more aggressive reuse of
recently-freed memory under the assumption that this is more likely to still be
cache-resident and thus faster to access. The net effect of this was that the
chance of the memory in question being reused and overwritten significantly
increased, making a number of latent cases of the problem described above now
user-visible.
The fix in this commit removes the freeing of expressions that are still
potentially in use. The contents of a subexpression in the above described
scenarios now remains intact up to the point it is accessed when evaluating its
parent containing expression.
The astute reader who has followed everything up to now may notice that the
subexpressions’ contents are actually maintained _beyond_ the point of
evaluation of the parent expression, and may be wondering, “didn’t you just turn
a use-after-free into a memory leak?” Unfortunately the answer is yes. However,
it is unclear how to determine when it is safe to free a subexpression without
introducing a more complex concept of call stacks and arbitrarily nested
expressions to lib/expr. Thus given the choice right now between use-after-free
or leaking memory, we are choosing to leak memory. Hopefully this can be
revisited in future.
Gitlab: fixes #2185
¹ https://en.wikipedia.org/wiki/Region-based_memory_management
Matthew Fernandez [Tue, 1 Mar 2022 16:25:26 +0000 (16:25 +0000)]
Merge branch 'fix-warnings2' into 'main'
fix or avoid some warnings
See merge request graphviz/graphviz!2450
Costa Shulyupin [Sun, 20 Feb 2022 05:53:27 +0000 (07:53 +0200)]
avoid unused args in free_clust
the function must be compatible with specified signature
Costa Shulyupin [Sun, 20 Feb 2022 05:53:05 +0000 (07:53 +0200)]
avoid unused args in callbacks freeItem
the function must be compatible with specified signature
Costa Shulyupin [Wed, 16 Feb 2022 11:04:29 +0000 (13:04 +0200)]
avoid unused args in callbacks newItem
the function must be compatible with specified signature
Costa Shulyupin [Wed, 16 Feb 2022 11:06:08 +0000 (13:06 +0200)]
remove unused argument in getintrsxi
Costa Shulyupin [Wed, 16 Feb 2022 10:57:08 +0000 (12:57 +0200)]
avoid unused args in ps_image_free
the function must have signature, compatible
typedef void (*Dtfree_f)(Dt_t*,void*,Dtdisc_t*);
Costa Shulyupin [Wed, 16 Feb 2022 10:50:50 +0000 (12:50 +0200)]
avoid unused args in free_string_entry
the function must have signature, compatible
typedef void (*Dtfree_f)(Dt_t*,void*,Dtdisc_t*);
Matthew Fernandez [Mon, 28 Feb 2022 01:20:04 +0000 (01:20 +0000)]
Merge branch 'smattr/
BDEE2E31-8B1D-4272-9616-
3F34D5730490' into 'main'
fix some clang-format; add enforcement
See merge request graphviz/graphviz!2477
Matthew Fernandez [Tue, 22 Feb 2022 02:05:22 +0000 (18:05 -0800)]
CI: add a clang-format checking job
Matthew Fernandez [Sat, 26 Feb 2022 05:58:20 +0000 (21:58 -0800)]
gvc++: [nfc] reorder GVLayout.h includes for clang-format
Matthew Fernandez [Fri, 25 Feb 2022 01:20:08 +0000 (17:20 -0800)]
tests: [nfc] reorder 2057 test code includes for clang-format
Matthew Fernandez [Thu, 24 Feb 2022 16:23:57 +0000 (08:23 -0800)]
tests: [nfc] reflow 1910 test code
Matthew Fernandez [Thu, 24 Feb 2022 05:43:54 +0000 (21:43 -0800)]
cgraph: [nfc] reflow test_sprint.h
Matthew Fernandez [Thu, 24 Feb 2022 05:29:50 +0000 (21:29 -0800)]
cgraph: [nfc] reflow test_itos.c
Matthew Fernandez [Thu, 24 Feb 2022 05:17:44 +0000 (21:17 -0800)]
cgraph: [nfc] reflow strcasecmp.h
This was intended to be compliant when I wrote it, but apparently I erred.
Matthew Fernandez [Thu, 24 Feb 2022 05:05:21 +0000 (21:05 -0800)]
cgraph: [nfc] reflow bitarray.h
Some non-compliant formatting crept in.
Matthew Fernandez [Mon, 28 Feb 2022 00:06:30 +0000 (00:06 +0000)]
Merge branch 'smattr/
0ee3a8de-0467-49e2-bfeb-
9bd70a4bc90a' into 'main'
expr: [nfc] some clean up
See merge request graphviz/graphviz!2480
Matthew Fernandez [Sat, 26 Feb 2022 19:20:56 +0000 (11:20 -0800)]
expr exeval: [nfc] remove unnecessary parens, dereference of function pointers
The C compiler knows how to dereference and call through a function pointer
without needing this manual instruction.
Matthew Fernandez [Sat, 26 Feb 2022 19:18:53 +0000 (11:18 -0800)]
expr: [nfc] remove unnecessary parens and dereference of 'convertf'
The C compiler knows how to dereference and call through a function pointer
without needing this manual instruction.
Matthew Fernandez [Sat, 26 Feb 2022 19:10:04 +0000 (11:10 -0800)]
expr: [nfc] remove unnecessary parens and dereference of 'binaryf'
The C compiler knows how to dereference and call through a function pointer
without needing this manual instruction.
Matthew Fernandez [Sat, 26 Feb 2022 19:08:03 +0000 (11:08 -0800)]
expr: [nfc] remove unnecessary parens and dereference of 'matchf'
The C compiler knows how to dereference and call through a function pointer
without needing this manual instruction.
Matthew Fernandez [Sat, 26 Feb 2022 19:03:00 +0000 (11:03 -0800)]
expr: [nfc] remove unnecessary parens and dereference of 'exitf'
The C compiler knows how to dereference and call through a function pointer
without needing this manual instruction.
Matthew Fernandez [Sat, 26 Feb 2022 19:01:57 +0000 (11:01 -0800)]
expr: [nfc] remove unnecessary parens and dereference of 'setf'
The C compiler knows how to dereference and call through a function pointer
without needing this manual instruction.
Matthew Fernandez [Sat, 26 Feb 2022 19:00:08 +0000 (11:00 -0800)]
expr: [nfc] remove unnecessary parens in 'eval(…).string' expressions
Matthew Fernandez [Sat, 26 Feb 2022 18:57:15 +0000 (10:57 -0800)]
expr: [nfc] remove unorthodox spacing around member accesses
Matthew Fernandez [Sat, 26 Feb 2022 18:56:04 +0000 (10:56 -0800)]
expr: [nfc] remove unnecessary parens and dereference of 'getf'
The C compiler knows how to dereference and call through a function pointer
without needing this manual instruction.
Matthew Fernandez [Sun, 27 Feb 2022 22:22:57 +0000 (22:22 +0000)]
Merge branch 'smattr/
1197F5FA-7D54-45A7-961E-
EC4BB50BCFE2' into 'main'
cgraph: fix some minor bugs
See merge request graphviz/graphviz!2475
Matthew Fernandez [Fri, 25 Feb 2022 16:18:17 +0000 (08:18 -0800)]
cgraph: fix: handle allocation failures in 'agcanon' and friends
There are a number of cgraph API functions that use an internally managed buffer
to save the caller from having to allocate space themselves. Failure to expand
this buffer was being silently ignored, resulting in messy crashes when memory
was exhausted. These failures are now checked for and `agcanon` and `agcanonStr`
return `NULL` on allocation failure. `agwrite` returns `EOF` on allocation
failure.
Matthew Fernandez [Fri, 25 Feb 2022 16:09:36 +0000 (08:09 -0800)]
agwrite: fix: ignore out of range 'linelength'
This code was accepting large negative numbers and then converting them to
positive numbers that were applied as the line length limit. This seems clearly
unintended. This rephrasing now ignores any out of range value set for
`linelength`.
Matthew Fernandez [Fri, 25 Feb 2022 15:59:14 +0000 (07:59 -0800)]
agwrite: [nfc] separate assignment from conditional
Squashes an MSVC “warning C4706: assignment within conditional expression”
warning.
Matthew Fernandez [Sat, 26 Feb 2022 18:24:25 +0000 (18:24 +0000)]
Merge branch 'smattr/
D7055808-9A1D-4DCD-90A7-
E0484002CF03' into 'main'
Start 3.0 development series
See merge request graphviz/graphviz!2478
Matthew Fernandez [Sat, 26 Feb 2022 16:19:01 +0000 (08:19 -0800)]
Start 3.0 development series
Matthew Fernandez [Sat, 26 Feb 2022 17:11:28 +0000 (17:11 +0000)]
Merge branch 'smattr/
5DA70CF4-980D-4F81-AEF7-
058695CA2E40' into 'main'
Stable Release 3.0.0
See merge request graphviz/graphviz!2461
Matthew Fernandez [Sun, 20 Feb 2022 00:13:41 +0000 (16:13 -0800)]
Stable Release 3.0.0
Matthew Fernandez [Sat, 26 Feb 2022 07:05:14 +0000 (07:05 +0000)]
Merge branch 'smattr/
51EA14FF-2973-4E74-9B56-
9E7681B60DBB' into 'main'
add a test case for #191
See merge request graphviz/graphviz!2474
Matthew Fernandez [Fri, 25 Feb 2022 04:09:14 +0000 (20:09 -0800)]
add a test case for #191
Matthew Fernandez [Sat, 26 Feb 2022 05:55:17 +0000 (05:55 +0000)]
Merge branch 'smattr/
6BECC6DB-0939-436D-839C-
A2159C2C25A3' into 'main'
agnameof: [nfc] separate assignments from conditionals
See merge request graphviz/graphviz!2473
Matthew Fernandez [Fri, 25 Feb 2022 04:56:39 +0000 (20:56 -0800)]
agnameof: [nfc] separate assignments from conditionals
Squashes a number of MSVC “C4706: assignment within conditional expression”
warnings.