Dave Rolsky <[EMAIL PROTECTED]> writes:

> On 8 Jul 2002, Joe Schaefer wrote:

[...]

> >   my $r = shift;
> >   my $apr = Apache::Request->new($r);
> >
> > That's not going to leak, either.  At least I hope not :-)
> 
> I ended up using something like this and the leak went away.
> 
> It seems to me that this might actually be a Perl bug.

I doubt it's solely perl's fault.  The problem is that you 
have to be an internals wizard to write "safe" XS; otherwise
you just keep your fingers crossed.  :-)

Hopefully some generous soul will post a patch to Request.xs that
prevents this problem from ever arising.

> If I do this:
> 
>  my $x = shift;
>  $x = make_something_from($x);
> 
> then it seems like the original $x should go out of scope when it is
> assigned to, so its refcount should stay at 1.
                               ^^^^^^

Right, it should stay at 1.  But all bets are off when
$x is has magic and make_something_from() is an XS sub :-).

-- 
Joe Schaefer

Reply via email to