summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTony Cook <tony@develop-help.com>2012-12-20 09:10:01 +1100
committerTony Cook <tony@develop-help.com>2012-12-20 09:31:31 +1100
commit9712754a3e851ea70c1032ffb5e577dc0fdeca7b (patch)
tree120728c71441fe043d7cbbbf6a7b86e5a2a2e01c /lib
parent85b59111fe65fd8577540e06fa1067b29f0b7a1e (diff)
downloadperl-9712754a3e851ea70c1032ffb5e577dc0fdeca7b.tar.gz
when the output isn't RETVAL, update the SV instead of replacing it
Previously OUTPUT argument parameters would replace ST(n) instead of updating it, this meant that the caller's supplied value would not be updated. This change means that OUTPUT T_BOOL arguments called RETVAL won't be handled correctly, but since the OUTPUT didn't work previously for *any* case, this is a net improvement.
Diffstat (limited to 'lib')
-rw-r--r--lib/ExtUtils/typemap2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/ExtUtils/typemap b/lib/ExtUtils/typemap
index 0fa14fbcff..874bc161a8 100644
--- a/lib/ExtUtils/typemap
+++ b/lib/ExtUtils/typemap
@@ -328,7 +328,7 @@ T_SYSRET
T_ENUM
sv_setiv($arg, (IV)$var);
T_BOOL
- $arg = boolSV($var);
+ ${"$var" eq "RETVAL" ? \"$arg = boolSV($var);" : \"sv_setsv($arg, boolSV($var));"}
T_U_INT
sv_setuv($arg, (UV)$var);
T_SHORT