summaryrefslogtreecommitdiffstats
path: root/bindings/perl/typemap-out
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/perl/typemap-out')
-rw-r--r--bindings/perl/typemap-out43
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;
+ }
+ }