On Wed, Jun 29, 2005 at 09:40:38PM -0700, Marvin Humphrey wrote: > > On Jun 27, 2005, at 8:07 PM, Sisyphus wrote: > >You can also 'printf("%d\n", SvREFCNT(sv));' to view the reference > >count > >from within the C function. I've made use of that from time to time > >(particularly wrt operator overloading, where I'm often not sure > >just what > >the count is). > > There's been some weirdness in how the reference counts behave when > I've created SV*'s from within C. I couldn't really figure it out. > I worked around it in the particular section by passing an extra > argument from perl to use for output, so that the C function went > from returning an SV to void.
Memory sayeth that it's a bug, but one that can't be fixed because it would cause Much Breakage in the substantial amount of deployed code that already works around said bug in various ways. However I haven't had time to read p5p in a while now, so many of those neurons have been recycled. I have a project that should unrecycle most of them, but alas no time to do it in yet. -- Matt S Trout Website: http://www.shadowcatsystems.co.uk Technical Director E-mail: mst (at) shadowcatsystems.co.uk Shadowcat Systems Ltd.