]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blobdiff - lib/Test/Valgrind/Tool/memcheck.pm
Tools can only be run in one session at a time by default
[perl/modules/Test-Valgrind.git] / lib / Test / Valgrind / Tool / memcheck.pm
index 790587159ff22f29c8fc6948317d9c9b555bc587..15b65870c7231724e24afc7e57a253c6829e43f6 100644 (file)
@@ -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<XML::Twig> 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; }