Looks like they both operate on the same thing (the CV*) to me. (If not, please explain, since I'm not very familiar with this stuff.) So the question is why does Perl and your function use different tests to determine the same thing?
#define CvROOT(sv) ((XPVCV*)SvANY(sv))->xcv_root_u.xcv_root
#define CvXSUB(sv) ((XPVCV*)SvANY(sv))->xcv_root_u.xcv_xsub
#define CvOUTSIDE(sv) ((XPVCV*)SvANY(sv))->xcv_outside
| [reply] [d/l] |
Looks like they both operate on the same thing (the CV*) to me
Yes - when you descend to that level they become very similar, indeed :-)
So the question is why does Perl and your function use different tests to determine the same thing?
Good question. My approach won't work on perl-5.6.2, so perhaps history and portability might be part of the explanation. But there could, of course, be other reasons. (I couldn't even get correct results on perl-5.6.2 with CvROOT and CvXSUB.)
Cheers, Rob
| [reply] |
| [reply] [d/l] [select] |