diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
commit | 648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /WebKitTools/Scripts/report-include-statistics | |
parent | a65af38181ac7d34544586bdb5cd004de93897ad (diff) | |
download | external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'WebKitTools/Scripts/report-include-statistics')
-rwxr-xr-x | WebKitTools/Scripts/report-include-statistics | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/WebKitTools/Scripts/report-include-statistics b/WebKitTools/Scripts/report-include-statistics deleted file mode 100755 index f81c3c3..0000000 --- a/WebKitTools/Scripts/report-include-statistics +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/perl -w - -# Copyright (C) 2005, 2006 Apple Computer, Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# "report-include-statistics" script for Web Kit Open Source Project - -use strict; -use File::Find; - -find(\&wanted, @ARGV ? @ARGV : "."); - -my %paths; -my %sources; -my %includes; - -sub wanted -{ - my $file = $_; - - if ($file eq "icu") { - $File::Find::prune = 1; - return; - } - - if ($file !~ /^\./ && $file =~ /\.(h|cpp|c|mm|m)$/) { - $paths{$file} = $File::Find::name; - $sources{$file} = $File::Find::name if $file !~ /\.h/; - open FILE, $file or die; - while (<FILE>) { - if (m-^\s*#\s*(include|import)\s+["<]((\S+/)*)(\S+)[">]-) { - my $include = ($2 eq "sys/" ? $2 : "") . $4; - $includes{$file}{$include}++; - } - } - close FILE; - } -} - -my %totalIncludes; - -sub fillOut -{ - my ($file) = @_; - - return if defined $totalIncludes{$file}; - - for my $include (keys %{ $includes{$file} }) { - $totalIncludes{$file}{$include} = 1; - fillOut($include); - for my $i (keys %{ $totalIncludes{$include} }) { - $totalIncludes{$file}{$i} = 1; - } - } -} - -my %inclusionCounts; -for my $file (keys %includes) { - $inclusionCounts{$file} = 0; - fillOut($file); -} - -for my $file (keys %sources) { - for my $include (keys %{ $totalIncludes{$file} }) { - $inclusionCounts{$include}++; - } -} - -for my $file (sort mostincludedcmp keys %includes) { - next if !$paths{$file}; - my $count = $inclusionCounts{$file}; - my $numIncludes = keys %{ $includes{$file} }; - my $numTotalIncludes = keys %{ $totalIncludes{$file} }; - print "$file is included $count times, includes $numIncludes files directly, $numTotalIncludes files total.\n" -} - -# Sort most-included files first. -sub mostincludedcmp($$) -{ - my ($filea, $fileb) = @_; - - my $counta = $inclusionCounts{$filea} || 0; - my $countb = $inclusionCounts{$fileb} || 0; - return $countb <=> $counta if $counta != $countb; - - my $ta = keys %{ $totalIncludes{$filea} }; - my $tb = keys %{ $totalIncludes{$fileb} }; - return $ta <=> $tb if $ta != $tb; - - return $filea cmp $fileb; -} |