File Coverage

xs/cloning.xsi
Criterion Covered Total %
statement 11 16 68.7
branch 17 48 35.4
condition n/a
subroutine n/a
pod n/a
total 28 64 43.7


line stmt bran cond sub pod time code
1             MODULE = URI::XS PACKAGE = URI::XS
2             PROTOTYPES: DISABLE
3              
4             URISP URI::HOOK_CLONE () {
5 0           PROTO = Object(ST(0)).stash();
6 0 0         if (dynamic_cast(THIS)) RETVAL = URI::create(*THIS);
    0          
7 0 0         else RETVAL = make_backref(*THIS);
    0          
    0          
    0          
8 0 0         }
9              
10             string URI::STORABLE_freeze (bool) {
11 3 50         RETVAL = THIS->to_string();
    50          
12 3 50         if (dynamic_cast(THIS)) RETVAL += '1';
    100          
    100          
    50          
13 1 50         else RETVAL += '0';
14             }
15              
16             URISP STORABLE_attach (SV* CLASS, bool, SV* serialized) {
17 6           STRLEN len;
18             char* p = SvPV(serialized, len);
19 3 50         len--;
    0          
20 3           char ctrl = p[len];
21 3           p[len] = 0;
22 3           if (ctrl == '1') RETVAL = URI::create(string(p, len));
23 3 100         else RETVAL = make_backref(string(p, len));
    50          
    50          
24 1 50         PROTO = CLASS;
    50          
25 3 50         }
26              
27             string URI::TO_JSON () {
28 0 0         RETVAL = THIS->to_string();
    0          
29             }