Front page | perl.perl5.porters |
Postings from November 2010
[perl #78862] [PATCH] G_VOID, G_SCALAR, and G_ARRAY are not separate bits anymore
Thread Previous
From:
Niko Tyni
Date:
November 6, 2010 04:40
Subject:
[perl #78862] [PATCH] G_VOID, G_SCALAR, and G_ARRAY are not separate bits anymore
Message ID:
rt-3.6.HEAD-4263-1289043613-336.78862-75-0@perl.org
# New Ticket Created by Niko Tyni
# Please include the string: [perl #78862]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=78862 >
Commit 2f8edad0d37e91319b6ba10b3745327ea49c179 made G_ARRAY
equal to G_SCALAR | G_VOID, contrary to perlcall.pod.
Bring the documentation up to date and add a test to prevent a similar
(although unlikely) accident in the future.
---
ext/XS-APItest/t/call.t | 11 ++++++++++-
pod/perlcall.pod | 7 +++----
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/ext/XS-APItest/t/call.t b/ext/XS-APItest/t/call.t
index caa86c4..fd968b8 100644
--- a/ext/XS-APItest/t/call.t
+++ b/ext/XS-APItest/t/call.t
@@ -11,7 +11,7 @@ use strict;
BEGIN {
require '../../t/test.pl';
- plan(435);
+ plan(436);
use_ok('XS::APItest')
};
@@ -149,6 +149,15 @@ for my $test (
};
+{
+ # these are the ones documented in perlcall.pod
+ my @flags = (G_DISCARD, G_NOARGS, G_EVAL, G_KEEPERR);
+ my $mask = 0;
+ $mask |= $_ for (@flags);
+ is(unpack('%32b*', pack('l', $mask)), @flags,
+ "G_DISCARD and the rest are separate bits");
+}
+
foreach my $inx ("", "aabbcc\n", [qw(aa bb cc)]) {
foreach my $outx ("", "xxyyzz\n", [qw(xx yy zz)]) {
my $warn;
diff --git a/pod/perlcall.pod b/pod/perlcall.pod
index 1694848..e32e77e 100644
--- a/pod/perlcall.pod
+++ b/pod/perlcall.pod
@@ -121,10 +121,9 @@ been warned.
=head1 FLAG VALUES
-The C<flags> parameter in all the I<call_*> functions is a bit mask
-which can consist of any combination of the symbols defined below,
-OR'ed together.
-
+The C<flags> parameter in all the I<call_*> functions is one of G_VOID,
+G_SCALAR, or G_ARRAY, which indicate the call context, OR'ed together
+with a bit mask of any combination of the other G_* symbols defined below.
=head2 G_VOID
--
1.7.2.3
Thread Previous