Source

perl-XML-LibXML / typemap

Diff from to
 TYPEMAP
 const char *        T_PV
 xmlDocPtr           O_OBJECT
-xmlNodePtr          O_OBJECT
+xmlNodePtr          PROXY_OBJECT
 xmlParserCtxtPtr    O_OBJECT
 xmlDtdPtr           O_OBJECT
 xmlNodeSetPtr       O_OBJECT
+ProxyObject *       O_OBJECT
+
 
 INPUT
 O_OBJECT
             XSRETURN_UNDEF;
     }
 
+PROXY_OBJECT
+    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
+            $var = ($type)(((ProxyObject *)SvIV((SV*)SvRV( $arg )))->object);
+    else{
+            warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
+            XSRETURN_UNDEF;
+    }
+
 OUTPUT
 
 # The Perl object is blessed into 'CLASS', which should be a
 O_OBJECT
         sv_setref_pv( $arg, (char *)CLASS, (void*)$var );
 
+PROXY_OBJECT
+        sv_setref_pv( $arg, (char *)CLASS, (void*)$var );
+