X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FTool%2Fmemcheck.pm;h=05f77bdf7be145aefefb42f6bae56e1b3ec7f52d;hb=91e50cd9ec30efd628f6221947d7a523eebb2248;hp=790587159ff22f29c8fc6948317d9c9b555bc587;hpb=b41c498738a3a4ccb8742883a42e6ea5addb1afd;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind/Tool/memcheck.pm b/lib/Test/Valgrind/Tool/memcheck.pm index 7905871..05f77bd 100644 --- a/lib/Test/Valgrind/Tool/memcheck.pm +++ b/lib/Test/Valgrind/Tool/memcheck.pm @@ -9,11 +9,11 @@ Test::Valgrind::Tool::memcheck - Run an analysis through the memcheck tool. =head1 VERSION -Version 1.00 +Version 1.02 =cut -our $VERSION = '1.00'; +our $VERSION = '1.02'; =head1 DESCRIPTION @@ -21,11 +21,11 @@ This tool parses the XML output of a C run with L. =cut -use base qw/Test::Valgrind::Tool::SuppressionsParser Test::Valgrind::Tool/; +use base qw/Test::Valgrind::Tool/; =head1 METHODS -This class inherits L and L. +This class inherits L. =head2 C @@ -79,7 +79,7 @@ Read-only accessor for the underlying L parser. =cut -sub twig { $_[0]->{twig} } +sub twig { $_[0]->{twig} } sub suppressions_tag { 'memcheck-' . $_[1]->version } @@ -92,7 +92,8 @@ This tool emits C object reports in anal sub report_class_analysis { 'Test::Valgrind::Tool::memcheck::Report' } sub args { - my ($self, $sess) = @_; + my $self = shift; + my ($sess) = @_; my @args = ( '--tool=memcheck', @@ -108,7 +109,7 @@ sub args { push @args, '--xml=yes'; } - push @args, $self->SUPER::args(); + push @args, $self->SUPER::args(@_); return @args; } @@ -121,9 +122,6 @@ sub _session { @_ <= 1 ? $_[0]->{_session} : ($_[0]->{_session} = $_[1]) } sub start { my ($self, $sess) = @_; - $self->_croak('This memcheck tool can\'t be run in two sessions at once') - if $self->_session; - $self->SUPER::start($sess); $self->_session($sess); @@ -144,14 +142,14 @@ sub finish { my ($self, $sess) = @_; $self->_session(undef); - $self->SUPER::start($sess); + $self->SUPER::finish($sess); return; } =head1 SEE ALSO -L, L, L. +L, L. L. @@ -186,9 +184,7 @@ package Test::Valgrind::Tool::memcheck::Report; use base qw/Test::Valgrind::Report/; -use Config qw/%Config/; - -our $VERSION = '1.00'; +our $VERSION = '1.02'; my @kinds = qw/ InvalidFree @@ -217,7 +213,11 @@ sub valid_kind { exists $kinds_hashed{$_[1]} } sub is_leak { $_[0]->kind =~ /^Leak_/ ? 1 : '' } -my $pad = 2 * ($Config{ptrsize} || 4); +my $pad; +BEGIN { + require Config; + $pad = 2 * ($Config::Config{ptrsize} || 4); +} sub dump { my ($self) = @_; @@ -256,7 +256,7 @@ sub dump { package Test::Valgrind::Tool::memcheck::Twig; -our $VERSION = '1.00'; +our $VERSION = '1.02'; use Scalar::Util; @@ -321,13 +321,14 @@ sub handle_error { $origin->kid('stack')->children('frame') ]; } - my $report = Test::Valgrind::Tool::memcheck::Report->new( + my $tool = $twig->stash->{tool}; + my $sess = $tool->_session; + + $sess->report($tool->report_class($sess)->new( kind => $kind, id => $id, data => $data, - ); - - $twig->stash->{tool}->_session->report($report); + )); $twig->purge; } @@ -336,7 +337,7 @@ sub handle_error { package Test::Valgrind::Tool::memcheck::Twig::Elt; -our $VERSION = '1.00'; +our $VERSION = '1.02'; BEGIN { require XML::Twig; }