summaryrefslogtreecommitdiff
path: root/xs/Method.xs
blob: 5ffa4677e7733af1f69259aeb9c32ee294fff4cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "mop.h"

MODULE = Class::MOP::Method   PACKAGE = Class::MOP::Method

PROTOTYPES: DISABLE

BOOT:
    INSTALL_SIMPLE_READER(Method, name);
    INSTALL_SIMPLE_READER(Method, package_name);
    INSTALL_SIMPLE_READER(Method, body);

bool
is_stub(self)
    SV *self

    PREINIT:
        CV *const body = (CV *)SvRV( HeVAL( hv_fetch_ent((HV *)SvRV(self), KEY_FOR(body), 0, HASH_FOR(body)) ) );

    CODE:
        RETVAL = !( CvISXSUB(body) || CvROOT(body) );

    OUTPUT:
        RETVAL