From 20b56788bc61de5b3d10c90a9fd588d373134aae Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Tue, 13 Nov 2018 21:39:45 +0000 Subject: Adopt C99 bool in the edsf API. Now the flag passed to edsf_merge to say whether two items are the same or opposite is a bool, and so is the flag returned via a pointer argument from edsf_canonify. The latter requires client code to be updated to match (otherwise you'll get a pointer type error), so I've done that update in Loopy, which is edsf's only current in-tree client. --- dsf.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'dsf.c') diff --git a/dsf.c b/dsf.c index aa22392..4f3abf0 100644 --- a/dsf.c +++ b/dsf.c @@ -15,7 +15,8 @@ int *equal_elements = snewn(size, int); int *inverse_elements = snewn(size, int); int printed_count = 0, equal_count, inverse_count; - int i, n, inverse; + int i, n; + bool inverse; memset(printed_elements, -1, sizeof(int) * size); @@ -99,10 +100,10 @@ int dsf_size(int *dsf, int index) { return dsf[dsf_canonify(dsf, index)] >> 2; } -int edsf_canonify(int *dsf, int index, int *inverse_return) +int edsf_canonify(int *dsf, int index, bool *inverse_return) { int start_index = index, canonical_index; - int inverse = 0; + bool inverse = false; /* fprintf(stderr, "dsf = %p\n", dsf); */ /* fprintf(stderr, "Canonify %2d\n", index); */ @@ -141,9 +142,9 @@ int edsf_canonify(int *dsf, int index, int *inverse_return) return index; } -void edsf_merge(int *dsf, int v1, int v2, int inverse) +void edsf_merge(int *dsf, int v1, int v2, bool inverse) { - int i1, i2; + bool i1, i2; /* fprintf(stderr, "dsf = %p\n", dsf); */ /* fprintf(stderr, "Merge [%2d,%2d], %d\n", v1, v2, inverse); */ -- cgit v1.1