Joe Schaefer <[EMAIL PROTECTED]> writes:
[...]
> Somehow the assignment operator MUST be involved in the leak here.
> (You only get a leak when the *same* reference (*SV) is on both sides
> of the assignment).
Could someone with modperl 1.2x built using a perl 5.8 release candidate
please test this out:
<Perl>
sub Apache::Request::DESTROY{warn "DEAD: $_[0]\n"}
sub Apache::DESTROY{warn "Dead: $_[0]\n"}
use Devel::Peek;
use Apache:Request;
package Apache::test;
sub handler {
my $r = shift;
my $apr = Apache::Request->new($r);
Dump($apr); # OK
$r = $apr; # XXX: what's going on here???
Dump($apr); # fscked
$r->send_header;
$r->print('apr test');
return 200;
}
1;
</Perl>
<Location /test>
SetHandler perl-script
PerlHandler Apache::test
</Location>
My error log for a request to /test is below. The above
assignment on the line marked "XXX" is modifying $apr, which
it shouldn't.
I don't have a 5.8-RC handy to test this on, but if somebody
else sees the same problem on 5.8, I'll file a bug report to p5p.
Thanks alot.
--------------------------------------------------
SV = RV(0x814b154) at 0x82309b8
REFCNT = 1
FLAGS = (ROK)
RV = 0x82472f4
SV = PVMG(0x8244f58) at 0x82472f4
REFCNT = 1
FLAGS = (OBJECT,RMG,IOK,pIOK)
IV = 136639644
NV = 0
PV = 0
MAGIC = 0x8244f80
MG_VIRTUAL = 0
MG_TYPE = '~'
MG_FLAGS = 0x02
REFCOUNTED
MG_OBJ = 0x822dec4
SV = RV(0x814b14c) at 0x822dec4
REFCNT = 2
FLAGS = (PADBUSY,PADMY,ROK)
RV = 0x82472dc
SV = PVMG(0x8244f30) at 0x82472dc
REFCNT = 2
FLAGS = (OBJECT,IOK,pIOK)
IV = 136628428
NV = 0
PV = 0
STASH = 0x81420e4 "Apache"
MG_LEN = -1
MG_PTR = 0x824c8cc ???? - please notify IZ
STASH = 0x8224a18 "Apache::Request"
SV = RV(0x814b154) at 0x82309b8
REFCNT = 1
FLAGS = (ROK)
RV = 0x82472f4
SV = PVMG(0x8244f58) at 0x82472f4
REFCNT = 2
FLAGS = (OBJECT,RMG,IOK,pIOK)
IV = 136639644
NV = 0
PV = 0
MAGIC = 0x8244f80
MG_VIRTUAL = 0
MG_TYPE = '~'
MG_FLAGS = 0x02
REFCOUNTED
MG_OBJ = 0x822dec4
SV = RV(0x814b14c) at 0x822dec4
REFCNT = 2
FLAGS = (PADBUSY,PADMY,ROK)
RV = 0x82472f4
SV = PVMG(0x8244f58) at 0x82472f4
REFCNT = 2
FLAGS = (OBJECT,RMG,IOK,pIOK)
IV = 136639644
NV = 0
PV = 0
MAGIC = 0x8244f80
MG_VIRTUAL = 0
MG_TYPE = '~'
MG_FLAGS = 0x02
REFCOUNTED
MG_OBJ = 0x822dec4
SV = RV(0x814b14c) at 0x822dec4
REFCNT = 2
FLAGS = (PADBUSY,PADMY,ROK)
RV = 0x82472f4
MG_LEN = -1
MG_PTR = 0x824c8cc ???? - please notify IZ
STASH = 0x8224a18 "Apache::Request"
MG_LEN = -1
MG_PTR = 0x824c8cc ???? - please notify IZ
STASH = 0x8224a18 "Apache::Request"
Dead: Apache=SCALAR(0x82472dc)
--------------------------------------------------
--
Joe Schaefer