SV* Pointf::to_SV_pureperl() const { AV* av = newAV(); av_fill(av, 1); av_store(av, 0, newSVnv(this->x)); av_store(av, 1, newSVnv(this->y)); return newRV_noinc((SV*)av); }
static void rowreq_init_common(PLCB_t *parent, AV *req) { SV *selfref; av_fill(req, PLCB_VHIDX_MAX); av_store(req, PLCB_VHIDX_ROWBUF, newRV_noinc((SV *)newAV())); av_store(req, PLCB_VHIDX_RAWROWS, newRV_noinc((SV *)newAV())); av_store(req, PLCB_VHIDX_PARENT, newRV_inc(parent->selfobj)); selfref = newRV_inc((SV*)req); sv_rvweaken(selfref); av_store(req, PLCB_VHIDX_SELFREF, selfref); }
static JSBool perlarray_proplen_set( JSContext *cx, JSObject *obj, jsval id, jsval *vp ) { dTHX; SV *ref = (SV *)JS_GetPrivate(cx, obj); AV *av = (AV *)SvRV(ref); int nlen = JSVAL_TO_INT(*vp); PJS_ARRAY_CHECK if(nlen < 0) { JS_ReportError(cx, "Illegal value for 'length'"); return JS_FALSE; } av_fill(av, nlen - 1); return JS_TRUE; }