[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] Debian package checker branch, master, updated. 2.5.14-90-g398f63e



The following commit has been merged in the master branch:
commit b7c19f8d0aa6c80c7223a5131fac12de024db798
Author: Niels Thykier <niels@thykier.net>
Date:   Mon Jul 22 20:04:06 2013 +0200

    L::Collect: Avoid overcounting index memory usage
    
    When submitting index and sorted_index together to Devel::Size, we
    avoid having it overcounting the memory usage for the L::Path objects.
    Example, before:
    
    """
    N:   -- index: 29.32 MB
    [...]
    N:   -- sorted_index: 28.74 MB
    """
    
    after:
    
    """
    N:   -- index: 30.32 MB
    """
    
    Signed-off-by: Niels Thykier <niels@thykier.net>

diff --git a/lib/Lintian/Collect.pm b/lib/Lintian/Collect.pm
index dfa9df8..9b45853 100644
--- a/lib/Lintian/Collect.pm
+++ b/lib/Lintian/Collect.pm
@@ -259,7 +259,16 @@ sub _memory_usage {
     my ($self, $calc_usage) = @_;
     my %usage;
     for my $field (keys(%{$self})) {
-        $usage{$field} = $calc_usage->($self->{$field});
+        next if ($field =~ m{ \A sorted_ }xsm);
+        if (exists($self->{"sorted_$field"})) {
+            # merge "index" and "sorted_index".  At the price of an extra
+            # list, we avoid overcounting all the L::Path objects so the
+            # produced result is a lot more accurate.
+            $usage{$field} = $calc_usage->([$self->{$field},
+                                            $self->{"sorted_$field"}]);
+        } else {
+            $usage{$field} = $calc_usage->($self->{$field});
+        }
     }
     return \%usage;
 }

-- 
Debian package checker


Reply to: