Do not track plain scalar refs on 5.17+ for the time being
Peter Rabbitson [Mon, 20 Jan 2014 13:12:23 +0000 (14:12 +0100)]
t/lib/DBICTest/Util/LeakTracer.pm

index bb1b73e..ef178f9 100644 (file)
@@ -11,6 +11,7 @@ use Data::Dumper::Concise;
 use DBICTest::Util 'stacktrace';
 use constant {
   CV_TRACING => DBIx::Class::Optional::Dependencies->req_ok_for ('test_leaks_heavy'),
+  SKIP_SCALAR_REFS => ( $] > 5.017 ) ? 1 : 0,
 };
 
 use base 'Exporter';
@@ -53,6 +54,10 @@ sub populate_weakregistry {
       for keys %$reg;
   }
 
+  # FIXME/INVESTIGATE - something fishy is going on with refs to plain
+  # strings, perhaps something to do with the CoW work etc...
+  return $target if SKIP_SCALAR_REFS and reftype($target) eq 'SCALAR';
+
   if (! defined $weak_registry->{$refaddr}{weakref}) {
     $weak_registry->{$refaddr} = {
       stacktrace => stacktrace(1),