summaryrefslogtreecommitdiff
path: root/build-aux/useless-if-before-free
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/useless-if-before-free')
-rwxr-xr-xbuild-aux/useless-if-before-free24
1 files changed, 16 insertions, 8 deletions
diff --git a/build-aux/useless-if-before-free b/build-aux/useless-if-before-free
index f08b6cba6c..0bae2c4d05 100755
--- a/build-aux/useless-if-before-free
+++ b/build-aux/useless-if-before-free
@@ -2,7 +2,7 @@
# Detect instances of "if (p) free (p);".
# Likewise for "if (p != NULL) free (p);". And with braces.
-my $VERSION = '2008-05-25 16:59'; # UTC
+my $VERSION = '2008-05-25 17:36'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
@@ -122,14 +122,22 @@ EOF
while (defined (my $line = <FH>))
{
while ($line =~
- /\b(?:if\s*\(\s*([^)]+?)(?:\s*!=\s*NULL)?\s*\)
- (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*\1\s*\)|
- \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;\s*\}))/sxg)
+ /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*NULL)?\s*\)
+ (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)|
+ \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg)
{
- $found_match = 1;
- $list
- and (print "$file\0"), next FILE;
- print "$file: $1\n";
+ # Compare "if" expression and free'd expression,
+ # without regard to white space.
+ (my $e1 = $2) =~ tr/ \t//d;
+ my $e2 = defined $3 ? $3 : $4;
+ $e2 =~ tr/ \t//d;
+ if ($e1 eq $e2)
+ {
+ $found_match = 1;
+ $list
+ and (print "$file\0"), next FILE;
+ print "$file: $1\n";
+ }
}
}
}