Author: timbo
Date: Fri Sep 12 06:18:59 2008
New Revision: 11769
Modified:
dbi/trunk/Changes
dbi/trunk/DBI.pm
dbi/trunk/lib/DBI/Gofer/Execute.pm
Log:
Fixed two small memory leaks when running in mod_perl
one in DBI->connect and one in DBI::Gofer::Execute.
Both due to "local $ENV{...};" leaking memory.
Modified: dbi/trunk/Changes
==============================================================================
--- dbi/trunk/Changes (original)
+++ dbi/trunk/Changes Fri Sep 12 06:18:59 2008
@@ -56,6 +56,9 @@
=head2 Changes in DBI 1.608 (svn rXXX)
+ Fixed two small memory leaks when running in mod_perl
+ one in DBI->connect and one in DBI::Gofer::Execute.
+ Both due to "local $ENV{...};" leaking memory.
Fixed DBD_ATTRIB_DELETE macro for driver authors
and updated DBI::DBD docs thanks to Martin J. Evans.
Modified: dbi/trunk/DBI.pm
==============================================================================
--- dbi/trunk/DBI.pm (original)
+++ dbi/trunk/DBI.pm Fri Sep 12 06:18:59 2008
@@ -599,7 +599,7 @@
DBI->trace_msg(" DBI_AUTOPROXY:
dbi:$driver($driver_attrib_spec):$dsn\n");
}
# avoid recursion if proxy calls DBI->connect itself
- local $ENV{DBI_AUTOPROXY};
+ local $ENV{DBI_AUTOPROXY} if $ENV{DBI_AUTOPROXY};
my %attributes; # take a copy we can delete from
if ($old_driver) {
Modified: dbi/trunk/lib/DBI/Gofer/Execute.pm
==============================================================================
--- dbi/trunk/lib/DBI/Gofer/Execute.pm (original)
+++ dbi/trunk/lib/DBI/Gofer/Execute.pm Fri Sep 12 06:18:59 2008
@@ -157,7 +157,8 @@
}
}
- local $ENV{DBI_AUTOPROXY}; # limit the insanity
+ # local $ENV{...} can leak, so only do it if required
+ local $ENV{DBI_AUTOPROXY} if $ENV{DBI_AUTOPROXY};
my ($connect_method, $dsn, $username, $password, $attr) = @{
$request->dbh_connect_call };
$connect_method ||= 'connect_cached';