X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FTool%2Fmemcheck.pm;h=c93ad2dbd38fa7a6cba2c55acf2468dd073090b7;hb=b90507ca14e09b450113be587662f1b66d2671cc;hp=4f1c5a9f422f982f9d4471913acced0f04537e7f;hpb=1b06adb9788085e8aad3af42ea384153cd0a4fe6;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind/Tool/memcheck.pm b/lib/Test/Valgrind/Tool/memcheck.pm index 4f1c5a9..c93ad2d 100644 --- a/lib/Test/Valgrind/Tool/memcheck.pm +++ b/lib/Test/Valgrind/Tool/memcheck.pm @@ -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); @@ -323,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; }