diff options
Diffstat (limited to 'bindings/perl/typemap-out')
-rw-r--r-- | bindings/perl/typemap-out | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/bindings/perl/typemap-out b/bindings/perl/typemap-out new file mode 100644 index 00000000..6327b6ad --- /dev/null +++ b/bindings/perl/typemap-out @@ -0,0 +1,43 @@ +OUTPUT + +T_GOBJECT_WRAPPER + $arg = gperl_new_object((GObject*)$var, FALSE); + +T_XMLNODE_OWN + $arg = xmlnode_to_pv($var, TRUE); + +T_XMLNODE + $arg = xmlnode_to_pv($var, FALSE); + +T_GLIST_STRING + { + I32 ix, length; + length = g_list_length((GList*)$var); + EXTEND(SP, length); + for (ix = 0; ix < length; ++ix) { + ST(ix) = sv_2mortal(newSVpv((char*)$var->data, 0)); + $var = $var->next; + } + } + +T_GLIST_XMLNODE + { + I32 ix, length; + length = g_list_length((GList*)$var); + EXTEND(SP, length); + for (ix = 0; ix < length; ++ix) { + ST(ix) = sv_2mortal(xmlnode_to_pv((xmlNode*)$var->data, FALSE)); + $var = $var->next; + } + } + +T_GLIST_GOBJECT + { + I32 ix, length; + length = g_list_length((GList*)$var); + EXTEND(SP, length); + for (ix = 0; ix < length; ++ix) { + ST(ix) = sv_2mortal(gperl_new_object((GObject*)$var->data, FALSE)); + $var = $var->next; + } + } |