diff options
author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-28 15:31:21 +0000 |
---|---|---|
committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-28 15:31:21 +0000 |
commit | 8864adfcd01981b5cc55170169d046b50de814a1 (patch) | |
tree | bffdb76e1ecc6e7b2fb73312e4ce8770d4d1d1b7 /bindings/perl/typemap-out | |
parent | 1e581e05b75241c915b2505bcc6216027f51091a (diff) | |
download | lasso-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-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; + } + } |