From dd1669aad7f4b5e46fabecc38beda57ca61de127 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Wed, 11 Apr 2012 16:22:05 +0200 Subject: [PATCH] Use index() where possible. index() is faster than //. --- bin/blhc | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/bin/blhc b/bin/blhc index 1d35e0b..25f2953 100755 --- a/bin/blhc +++ b/bin/blhc @@ -343,7 +343,7 @@ sub pic_pie_conflict { sub is_non_verbose_build { my ($line, $next_line, $skip_ref) = @_; - if (not ($line =~ /^checking if you want to see long compiling messages\.\.\. no/ + if (not (index($line, 'checking if you want to see long compiling messages... no') == 0 or $line =~ /^\s*\[?(?:CC|CCLD|C\+\+|CXX|CXXLD|LD|LINK)\]?\s+(.+?)$/ or $line =~ /^\s*(?:C|c)ompiling\s+(.+?)(?:\.\.\.)?$/ or $line =~ /^\s*(?:B|b)uilding (?:program|shared library)\s+(.+?)$/ @@ -378,7 +378,7 @@ sub is_non_verbose_build { $file =~ m{/([^/\s]+)$}; $file = $1; - if ($next_line =~ /\Q$file\E/ and $next_line =~ /$cc_regex/o) { + if (index($next_line, $file) != -1 and $next_line =~ /$cc_regex/o) { # We still have to skip the current line as it doesn't contain any # compiler commands. ${$skip_ref} = 1; @@ -539,7 +539,8 @@ foreach my $file (@ARGV) { # # Packages which were built before 1.16.1 but used their own hardening # flags are not checked. - if ($option_buildd and $line =~ /^Toolchain package versions: /) { + if ($option_buildd + and index($line, 'Toolchain package versions: ') == 0) { require Dpkg::Version; if ($line !~ /\bdpkg-dev_(\S+)/ or Dpkg::Version::version_compare($1, '1.16.1') < 0) { @@ -558,7 +559,7 @@ foreach my $file (@ARGV) { # enabled, even though they may be not correctly set and are missing # when build with later CMake versions. Thanks to Aron Xu for letting # me know. - if ($line =~ /^Package versions: / + if (index($line, 'Package versions: ') == 0 and $line =~ /\bcmake_(\S+)/ and ($1 eq '2.8.7-1' or $1 eq '2.8.7-2')) { if (not $option_buildd) { @@ -571,7 +572,8 @@ foreach my $file (@ARGV) { # If hardening wrapper is used (wraps calls to gcc and adds hardening # flags automatically) we can't perform any checks, abort. - if ($line =~ /^Build-Depends: .*\bhardening-wrapper\b/) { + if (index($line, 'Build-Depends: ') == 0 + and $line =~ /\bhardening-wrapper\b/) { if (not $option_buildd) { error_hardening_wrapper(); } else { @@ -583,7 +585,7 @@ foreach my $file (@ARGV) { # We skip over unimportant lines at the beginning of the log to # prevent false positives. - last if $line =~ /^dpkg-buildpackage:/; + last if index($line, 'dpkg-buildpackage: ') == 0; } # Input lines, contain only the lines with compiler commands. @@ -606,7 +608,7 @@ foreach my $file (@ARGV) { # Ignore compiler warnings for now. next if $line =~ /$warning_regex/o; - if (not $option_buildd and $line =~ /\033/) { # esc + if (not $option_buildd and index($line, "\033") != -1) { # esc # Remove all ANSI color sequences which are sometimes used in # non-verbose builds. $line = Term::ANSIColor::colorstrip($line); @@ -623,7 +625,7 @@ foreach my $file (@ARGV) { # One line may contain multiple commands (";"). Treat each one as # single line. parse_line() is slow, only use it when necessary. - my @line = (not $line =~ /;/) + my @line = (index($line, ';') == -1) ? ($line) : map { # Ensure newline at the line end - necessary for @@ -867,7 +869,7 @@ LINE: # are missing. and not pic_pie_conflict($line, $harden_pie, \@missing, @def_cflags_pie) # Assume dpkg-buildflags returns the correct flags. - and not $line =~ /`dpkg-buildflags --get CFLAGS`/) { + and index($line, '`dpkg-buildflags --get CFLAGS`') == -1) { if (not $option_buildd) { error_flags('CFLAGS missing', \@missing, \%flag_renames, $input[$i]); } else { @@ -880,7 +882,7 @@ LINE: # are missing. and not pic_pie_conflict($line, $harden_pie, \@missing, @def_cflags_pie) # Assume dpkg-buildflags returns the correct flags. - and not $line =~ /`dpkg-buildflags --get CXXFLAGS`/) { + and index($line, '`dpkg-buildflags --get CXXFLAGS`') == -1) { if (not $option_buildd) { error_flags('CXXFLAGS missing', \@missing, \%flag_renames, $input[$i]); } else { @@ -890,7 +892,7 @@ LINE: } if ($preprocess and not all_flags_used($line, \@missing, @cppflags) # Assume dpkg-buildflags returns the correct flags. - and not $line =~ /`dpkg-buildflags --get CPPFLAGS`/) { + and index($line, '`dpkg-buildflags --get CPPFLAGS`') == -1) { if (not $option_buildd) { error_flags('CPPFLAGS missing', \@missing, \%flag_renames, $input[$i]); } else { @@ -902,7 +904,7 @@ LINE: # Same here, -fPIC conflicts with -fPIE. and not pic_pie_conflict($line, $harden_pie, \@missing, @def_ldflags_pie) # Assume dpkg-buildflags returns the correct flags. - and not $line =~ /`dpkg-buildflags --get LDFLAGS`/) { + and index($line, '`dpkg-buildflags --get LDFLAGS`') == -1) { if (not $option_buildd) { error_flags('LDFLAGS missing', \@missing, \%flag_renames, $input[$i]); } else { -- 2.45.2