[Templates] Catching missing object methods
Andy Wardley
abw@wardley.org
Fri, 10 Feb 2006 10:41:15 +0000
Tom Insam wrote:
> Sigh. I hate replying to myself, but there you go. That patch isn't
> correct, because sv_reftype( root , 0 ) is always returning REF.
Understood, it should be HvNAME.
> confused - the XS stash is using gv_fetchmethod_autoload to get a method
> to call, unlike the perl stash, which is just evalling the call, so the
> only time the XS code I'm patching below will get called correctly is if
> there's an AUTOLOAD in a package,
gv_fetchmethod_autoload() fetches a regular method or the AUTOLOAD method,
so this error checking code is run either way. We do it different in
Perl because the can() method doesn't account for AUTOLOAD, if memory
serves.
So I'm not confused (at least I don't think I am :-). Your patch makes
perfect sense to me, and as far as I can tell it should fix the problem.
A