| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
#include "EXTERN.h" |
|
2
|
|
|
|
|
|
|
#include "perl.h" |
|
3
|
|
|
|
|
|
|
#include "XSUB.h" |
|
4
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
/* inspired/stolen from Clone::Closure, to keep in sync with 5.13.3+ */ |
|
6
|
|
|
|
|
|
|
#ifndef CvGV_set |
|
7
|
|
|
|
|
|
|
#define CvGV_set(cv,gv) CvGV(cv) = (gv) |
|
8
|
|
|
|
|
|
|
#endif |
|
9
|
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
MODULE = Class::MethodMaker PACKAGE = Class::MethodMaker |
|
11
|
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
PROTOTYPES: ENABLE |
|
13
|
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
int |
|
15
|
|
|
|
|
|
|
set_sub_name(SV *sub, char *pname, char *subname, char *stashname) |
|
16
|
|
|
|
|
|
|
INIT: |
|
17
|
439
|
50
|
|
|
|
|
if (!SvTRUE(ST(0)) || !SvTRUE(ST(1)) || !SvTRUE(ST(2)) || !SvTRUE(ST(3))) |
|
|
|
50
|
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
18
|
0
|
|
|
|
|
|
XSRETURN_UNDEF; |
|
19
|
|
|
|
|
|
|
CODE: |
|
20
|
439
|
|
|
|
|
|
CvGV_set((CV*)SvRV(sub), gv_fetchpv(stashname, TRUE, SVt_PV)); |
|
21
|
439
|
|
|
|
|
|
GvSTASH(CvGV((GV*)SvRV(sub))) = gv_stashpv(pname, 1); |
|
22
|
|
|
|
|
|
|
#ifdef gv_name_set |
|
23
|
439
|
|
|
|
|
|
gv_name_set(CvGV((GV*)SvRV(sub)), subname, strlen(subname), GV_NOTQUAL); |
|
24
|
|
|
|
|
|
|
#else |
|
25
|
|
|
|
|
|
|
GvNAME(CvGV((GV*)SvRV(sub))) = savepv(subname); |
|
26
|
|
|
|
|
|
|
GvNAMELEN(CvGV((GV*)SvRV(sub))) = strlen(subname); |
|
27
|
|
|
|
|
|
|
#endif |
|
28
|
439
|
100
|
|
|
|
|
RETVAL = 1; |
|
29
|
|
|
|
|
|
|
OUTPUT: |
|
30
|
|
|
|
|
|
|
RETVAL |