diff options
author | Stephen McCamant <smcc@mit.edu> | 2003-07-27 10:07:46 -0400 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2003-07-28 04:56:48 +0000 |
commit | 429a5ce7398d47be4197dc655076a6fb2a8dc641 (patch) | |
tree | 7da55163cbb172ac46884c0b9175a916c779fa0d /ext/B/B.xs | |
parent | d10dc2ae49cc86b60fcfeb2fbd54ff9f07d3ccc3 (diff) | |
download | perl-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.xs | 18 |
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 |