blob: 1ae3923a451603197dd4482c0c1b99cfbe3043a9 (
plain) (
blame)
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
|
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
MODULE = Exporter::Lexical PACKAGE = Exporter::Lexical
PROTOTYPES: DISABLE
void
lexical_import(SV *name, CV *cv)
CODE:
PADLIST *pl;
PADOFFSET off;
if (!PL_compcv)
Perl_croak(aTHX_
"lexical_import can only be called at compile time");
pl = CvPADLIST(PL_compcv);
ENTER;
SAVESPTR(PL_comppad_name); PL_comppad_name = PadlistNAMES(pl);
SAVESPTR(PL_comppad); PL_comppad = PadlistARRAY(pl)[1];
SAVESPTR(PL_curpad); PL_curpad = PadARRAY(PL_comppad);
off = pad_add_name_sv(sv_2mortal(newSVpvf("&%"SVf,name)),
padadd_STATE, 0, 0);
SvREFCNT_dec(PL_curpad[off]);
PL_curpad[off] = SvREFCNT_inc(cv);
LEAVE;
|