Author: timbo
Date: Tue Apr 25 17:54:23 2006
New Revision: 5964
Modified:
dbi/trunk/DBI.pm
Log:
Fix connect_cached to not modify caller data thanks to Dami Laurent
Modified: dbi/trunk/DBI.pm
==============================================================================
--- dbi/trunk/DBI.pm (original)
+++ dbi/trunk/DBI.pm Tue Apr 25 17:54:23 2006
@@ -524,10 +524,12 @@
# For library code using connect_cached() with mod_perl
# we redirect those calls to Apache::DBI::connect() as well
my ($class, $dsn, $user, $pass, $attr) = @_;
- # XXX modifies callers data!
- ($attr ||= {})->{dbi_connect_method} =
- ($DBI::connect_via eq "Apache::DBI::connect")
+ my $dbi_connect_method = ($DBI::connect_via eq "Apache::DBI::connect")
? 'Apache::DBI::connect' : 'connect_cached';
+ $attr = {
+ $attr ? %$attr : (), # clone, don't modify callers data
+ dbi_connect_method => $dbi_connect_method,
+ };
return $class->connect($dsn, $user, $pass, $attr);
}