Escape more frames when determining carp/throw_exception originator
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Carp.pm
index 24ddd13..e0a1e92 100644 (file)
@@ -42,7 +42,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 (