summaryrefslogtreecommitdiffstats
path: root/bindings/perl/typemap-out
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-01-28 15:31:21 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-01-28 15:31:21 +0000
commit8864adfcd01981b5cc55170169d046b50de814a1 (patch)
treebffdb76e1ecc6e7b2fb73312e4ce8770d4d1d1b7 /bindings/perl/typemap-out
parent1e581e05b75241c915b2505bcc6216027f51091a (diff)
downloadlasso-8864adfcd01981b5cc55170169d046b50de814a1.tar.gz
lasso-8864adfcd01981b5cc55170169d046b50de814a1.tar.xz
lasso-8864adfcd01981b5cc55170169d046b50de814a1.zip
Binding perl: update to binding
* change extension of typemap files because if conflicts with existing * support constant list of strings and gobjects, add input rule for list of gobjects * fix setter for GList fields
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;
+ }
+ }