summaryrefslogtreecommitdiff
path: root/ext/B/B.xs
diff options
context:
space:
mode:
authorStephen McCamant <smcc@mit.edu>2003-07-27 10:07:46 -0400
committerJarkko Hietaniemi <jhi@iki.fi>2003-07-28 04:56:48 +0000
commit429a5ce7398d47be4197dc655076a6fb2a8dc641 (patch)
tree7da55163cbb172ac46884c0b9175a916c779fa0d /ext/B/B.xs
parentd10dc2ae49cc86b60fcfeb2fbd54ff9f07d3ccc3 (diff)
downloadperl-429a5ce7398d47be4197dc655076a6fb2a8dc641.tar.gz
B enhancements
Message-ID: <16164.5362.577992.841787@syllepsis.MIT.EDU> p4raw-id: //depot/perl@20253
Diffstat (limited to 'ext/B/B.xs')
-rw-r--r--ext/B/B.xs18
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/B/B.xs b/ext/B/B.xs
index cfe00792d6..2f87065f76 100644
--- a/ext/B/B.xs
+++ b/ext/B/B.xs
@@ -1049,6 +1049,13 @@ U32
SvTYPE(sv)
B::SV sv
+#define object_2svref(sv) sv
+#define SVREF SV *
+
+SVREF
+object_2svref(sv)
+ B::SV sv
+
MODULE = B PACKAGE = B::SV PREFIX = Sv
U32
@@ -1518,6 +1525,17 @@ AvARRAY(av)
XPUSHs(make_sv_object(aTHX_ sv_newmortal(), svp[i]));
}
+void
+AvARRAYelt(av, idx)
+ B::AV av
+ int idx
+ PPCODE:
+ if (idx >= 0 && AvFILL(av) >= 0 && idx <= AvFILL(av))
+ XPUSHs(make_sv_object(aTHX_ sv_newmortal(), (AvARRAY(av)[idx])));
+ else
+ XPUSHs(make_sv_object(aTHX_ sv_newmortal(), NULL));
+
+
MODULE = B PACKAGE = B::AV
U8