Subject: | fix for flush_buffer infinite loop |
Date: | Tue, 2 Sep 2008 16:19:36 -0500 (CDT) |
To: | bug-html-mason [...] rt.cpan.org |
From: | Dave Rolsky <autarch [...] urth.org> |
Show quoted text
---------- Forwarded message ----------
Date: Sat, 26 Jul 2008 14:09:59 -0400
From: Frédéric Brière <fbriere@fbriere.net>
To: Dave Rolsky <autarch@urth.org>
Cc: 436507@bugs.debian.org
Subject: Re: [Mason-devel] Bug#436507: libhtml-mason-perl: autoflush breaks
store modifier
On Fri, Jul 25, 2008 at 11:45:43AM -0400, Frédéric Brière wrote:
> I'd probably do more harm than good by putting my greasy hands in there.
Actually, once I managed to wrap my head around some of the inner
workings, the fix was quite simple. It's basically an extension of
r3752.
(It's just that it took me an obscene amount of time to realize that the
default out_method was only set for subrequests. Until then, I couldn't
figure out why there wasn't an infinite loop between flush_buffer and
out_method. Silly me.)
Anyway, here it is. Notice that scomp() was also affected by this bug,
so -- nyah! :)
If I'm not mistaken (and I very well could be), this doesn't fix the
issue for subrequests, or at least those called with out_method.
(Without out_method, they will merely pile up their output over the
parent's STACK_BUFFER, right?)
IOW, if you set out_method, and then scomp() a component that makes a
subrequest that happens to call flush_buffer(), things will get screwy.
I think.
--
I knew I'd hate COBOL the moment I saw they'd used "perform" instead of
"do".
-- Larry Wall on a not-so-popular programming language
Message body is not shown because sender requested not to inline it.