[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: custom model rows-reordered marshal
- From: Torsten Schoenfeld <kaffeetisch gmx de>
- To: gtk-perl-list gnome org
- Subject: Re: custom model rows-reordered marshal
- Date: Sun, 31 Aug 2008 18:49:33 +0200
Torsten Schoenfeld wrote:
> Ah, I didn't think of the possibility that the whole stack might be moved. And
> strangely enough, it doesn't seem to happen for me. Your test case passes for
> me with only PUTBACK and no SPAGAIN, even when I increase the artificial stack
> size from 500 to 500000. But I see why it might fail: when the requested stack
> size exceeds the size currently allocated, perl calls something like realloc()
> which might move the whole block.
I adjusted the test case slightly and now see the stack movement too.
> Yeah. The new rule of thumb then seems to be: if there is a chance that someone
> might overwrite the stack before you return from the xsub, call SPAGAIN before
> and PUTBACK after any code that modifies the local stack pointer.
Or, perhaps better: in a PPCODE xsub which modifies the local stack pointer, use
PUTBACK before and SPAGAIN after any code that might modify the global stack
pointer.
--
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]