X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FTool%2Fmemcheck.pm;h=15b65870c7231724e24afc7e57a253c6829e43f6;hb=8a51ed6220d0fb2e29c669011bdf733c347b60f4;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..15b6587 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 @@ -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 } @@ -121,9 +121,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,7 +141,7 @@ sub finish { my ($self, $sess) = @_; $self->_session(undef); - $self->SUPER::start($sess); + $self->SUPER::finish($sess); return; } @@ -186,9 +183,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 +212,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 +255,7 @@ sub dump { package Test::Valgrind::Tool::memcheck::Twig; -our $VERSION = '1.00'; +our $VERSION = '1.02'; use Scalar::Util; @@ -321,13 +320,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 +336,7 @@ sub handle_error { package Test::Valgrind::Tool::memcheck::Twig::Elt; -our $VERSION = '1.00'; +our $VERSION = '1.02'; BEGIN { require XML::Twig; }