X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCarp.pm;h=69eab4744ba3016736e5dfd433bd5561bbfcccb4;hb=0b0743afcb6904727aa51cc39fabeea190f5dac6;hp=24ddd1317fcc1fd31cb2b41ad7bf094afbdd86d1;hpb=5e0e5426b36b5df5f9d1394068cd9f7f1c81087a;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/Carp.pm b/lib/DBIx/Class/Carp.pm index 24ddd13..69eab47 100644 --- a/lib/DBIx/Class/Carp.pm +++ b/lib/DBIx/Class/Carp.pm @@ -4,20 +4,9 @@ package # hide from pause use strict; use warnings; -# This is here instead of DBIx::Class because of load-order issues -BEGIN { - # something is tripping up V::M on 5.8.1, leading to segfaults. - # A similar test in n::c itself is disabled on 5.8.1 for the same - # reason. There isn't much motivation to try to find why it happens - *DBIx::Class::_ENV_::BROKEN_NAMESPACE_CLEAN = ($] < 5.008005) - ? sub () { 1 } - : sub () { 0 } - ; -} - +# load Carp early to prevent tickling of the ::Internal stash being +# interpreted as "Carp is already loaded" by some braindead loader use Carp (); -use namespace::clean (); - $Carp::Internal{ (__PACKAGE__) }++; sub __find_caller { @@ -42,7 +31,12 @@ sub __find_caller { and ! $Carp::Internal{$1} and - $2 !~ /^(?: throw_exception | carp | carp_unique | carp_once )$/x +############################# +# Need a way to parameterize this for Carp::Skip + $1 !~ /^(?: DBIx::Class::Storage::BlockRunner | Context::Preserve | Try::Tiny | Class::Accessor::Grouped | Class::C3::Componentised | Module::Runtime )$/x + and + $2 !~ /^(?: throw_exception | carp | carp_unique | carp_once | dbh_do | txn_do | with_deferred_fk_checks)$/x +############################# ) ? $f[3] : undef; if ( @@ -125,13 +119,6 @@ sub import { $msg, ); }; - - # cleanup after ourselves - namespace::clean->import(-cleanee => $into, qw/carp carp_once carp_unique/) - ## FIXME FIXME FIXME - something is tripping up V::M on 5.8.1, leading - # to segfaults. When n::c/B::H::EndOfScope is rewritten in terms of tie() - # see if this starts working - unless DBIx::Class::_ENV_::BROKEN_NAMESPACE_CLEAN; } sub unimport {