1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#ifdef __cplusplus
extern "C" {
#endif
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#ifdef __cplusplus
}
#endif
MODULE = Array::RefElem PACKAGE = Array::RefElem
void
av_store(avref, key, val)
SV* avref
I32 key
SV* val
PROTOTYPE: \@$$
PREINIT:
AV* av;
CODE:
if (!SvROK(avref) || SvTYPE(SvRV(avref)) != SVt_PVAV)
croak("First argument to av_store() must be an array reference");
av = (AV*)SvRV(avref);
SvREFCNT_inc(val);
if (!av_store(av, key, val))
SvREFCNT_dec(val);
void
av_push(avref, val)
SV* avref
SV* val
PROTOTYPE: \@$
PREINIT:
AV* av;
CODE:
if (!SvROK(avref) || SvTYPE(SvRV(avref)) != SVt_PVAV)
croak("First argument to av_push() must be an array reference");
av = (AV*)SvRV(avref);
SvREFCNT_inc(val);
av_push(av, val);
void
hv_store(hvref, key, val)
SV* hvref
SV* key
SV* val
PROTOTYPE: \%$$
PREINIT:
HV* hv;
CODE:
if (!SvROK(hvref) || SvTYPE(SvRV(hvref)) != SVt_PVHV)
croak("First argument to hv_store() must be a hash reference");
hv = (HV*)SvRV(hvref);
SvREFCNT_inc(val);
if (!hv_store_ent(hv, key, val, 0))
SvREFCNT_dec(val);
|