diff options
Diffstat (limited to 'ext/XS-Typemap/Typemap.xs')
-rw-r--r-- | ext/XS-Typemap/Typemap.xs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ext/XS-Typemap/Typemap.xs b/ext/XS-Typemap/Typemap.xs index 397052d1cb..9250e3e110 100644 --- a/ext/XS-Typemap/Typemap.xs +++ b/ext/XS-Typemap/Typemap.xs @@ -267,6 +267,13 @@ T_SV( sv ) OUTPUT: RETVAL +void +T_SV_output(sv) + SV *sv + CODE: + sv = sv_2mortal(newSVpvn("test", 4)); + OUTPUT: + sv ## T_SVREF @@ -290,6 +297,11 @@ T_SVREF_REFCOUNT_FIXED( svref ) OUTPUT: RETVAL +void +T_SVREF_REFCOUNT_FIXED_output( OUT svref ) + SVREF_FIXED svref + CODE: + svref = newSVpvn("test", 4); ## T_AVREF @@ -313,6 +325,12 @@ T_AVREF_REFCOUNT_FIXED( av ) OUTPUT: RETVAL +void +T_AVREF_REFCOUNT_FIXED_output( OUT avref) + AV_FIXED *avref; + CODE: + avref = newAV(); + av_push(avref, newSVpvs("test")); ## T_HVREF @@ -336,6 +354,12 @@ T_HVREF_REFCOUNT_FIXED( hv ) OUTPUT: RETVAL +void +T_HVREF_REFCOUNT_FIXED_output( OUT hvref) + HV_FIXED *hvref; + CODE: + hvref = newHV(); + hv_stores(hvref, "test", newSVpvs("value")); ## T_CVREF @@ -359,6 +383,12 @@ T_CVREF_REFCOUNT_FIXED( cv ) OUTPUT: RETVAL +void +T_CVREF_REFCOUNT_FIXED_output( OUT cvref) + CV_FIXED *cvref; + CODE: + cvref = get_cv("XSLoader::load", 0); + SvREFCNT_inc(cvref); ## T_SYSRET |