|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
42
 | 
 43  | 
 0  | 
             && klen == mcdb_iter_keylen(iter)  | 
 
| 
43
 | 
 0  | 
 43  | 
             && 0 == memcmp(mcdb_iter_keyptr(iter), kp, klen))  | 
 
| 
44
 | 
 43  | 
 9  | 
            || ((iter->ptr = NULL), false);  | 
 
| 
52
 | 
 10  | 
 51  | 
     if (!iter->ptr)  | 
 
| 
56
 | 
 53  | 
 8  | 
       : (SV *)(iter->ptr = NULL);  | 
 
| 
95
 | 
 9  | 
 1  | 
     if (RETVAL->iter.map) {  | 
 
| 
123
 | 
 1  | 
 5  | 
     if (!SvOK(k)) XSRETURN_NO;  | 
 
| 
 | 
 1  | 
 0  | 
     if (!SvOK(k)) XSRETURN_NO;  | 
 
| 
 | 
 1  | 
 0  | 
     if (!SvOK(k)) XSRETURN_NO;  | 
 
| 
125
 | 
 5  | 
 0  | 
     kp = SvPV(k, klen);  | 
 
| 
126
 | 
 2  | 
 3  | 
     RETVAL = mcdb_find(&this->m, kp, klen);  | 
 
| 
 | 
 2  | 
 0  | 
     RETVAL = mcdb_find(&this->m, kp, klen);  | 
 
| 
138
 | 
 0  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 0  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 0  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
140
 | 
 0  | 
 0  | 
     kp = SvPV(k, klen);  | 
 
| 
141
 | 
 0  | 
 0  | 
     if (mcdb_find(&this->m, kp, klen))  | 
 
| 
 | 
 0  | 
 0  | 
     if (mcdb_find(&this->m, kp, klen))  | 
 
| 
156
 | 
 1  | 
 52  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
158
 | 
 52  | 
 0  | 
     kp = SvPV(k, klen);  | 
 
| 
159
 | 
 43  | 
 9  | 
     if (mcdbxs_is_iterkey(&this->iter, kp, klen)) {  | 
 
| 
162
 | 
 13  | 
 30  | 
         if (this->values && !mcdb_iter(&this->iter)) {  | 
 
| 
 | 
 2  | 
 11  | 
         if (this->values && !mcdb_iter(&this->iter)) {  | 
 
| 
166
 | 
 8  | 
 1  | 
     else if (mcdb_find(&this->m, kp, klen)) {  | 
 
| 
 | 
 8  | 
 0  | 
     else if (mcdb_find(&this->m, kp, klen)) {  | 
 
| 
171
 | 
 3  | 
 5  | 
         if (this->iter.eod && MCDB_HEADER_SZ == mcdb_datapos(&this->m)-klen-8) {  | 
 
| 
 | 
 2  | 
 1  | 
         if (this->iter.eod && MCDB_HEADER_SZ == mcdb_datapos(&this->m)-klen-8) {  | 
 
| 
174
 | 
 2  | 
 0  | 
             if (!mcdb_iter(&this->iter) || !mcdb_iter(&this->iter)) {  | 
 
| 
 | 
 0  | 
 2  | 
             if (!mcdb_iter(&this->iter) || !mcdb_iter(&this->iter)) {  | 
 
| 
190
 | 
 1  | 
 8  | 
     if (!RETVAL) XSRETURN_UNDEF;/* empty database */  | 
 
| 
199
 | 
 0  | 
 52  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 0  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 0  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
202
 | 
 7  | 
 45  | 
     if (!RETVAL) XSRETURN_UNDEF;  | 
 
| 
212
 | 
 9  | 
 0  | 
     if (sv_isobject(sv) && SvTYPE(SvRV(sv)) == SVt_PVMG) {  | 
 
| 
 | 
 9  | 
 0  | 
     if (sv_isobject(sv) && SvTYPE(SvRV(sv)) == SVt_PVMG) {  | 
 
| 
213
 | 
 9  | 
 0  | 
         this = INT2PTR(struct mcdbxs_read *, SvIV((SV *)SvRV(sv)));  | 
 
| 
226
 | 
 0  | 
 12  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 0  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
 | 
 0  | 
 0  | 
     if (!SvOK(k)) XSRETURN_UNDEF;  | 
 
| 
228
 | 
 11  | 
 1  | 
     kp = SvPV(k, klen);  | 
 
| 
231
 | 
 11  | 
 1  | 
     if (mcdb_findstart(&this->m, kp, klen))  | 
 
| 
232
 | 
 18  | 
 11  | 
         while (mcdb_findnext(&this->m, kp, klen))  | 
 
| 
258
 | 
 31  | 
 31  | 
     for (x = 1; x+1 < items; x += 2) {  | 
 
| 
260
 | 
 0  | 
 31  | 
         if (SvOK(k) && SvOK(v)) {  | 
 
| 
 | 
 0  | 
 0  | 
         if (SvOK(k) && SvOK(v)) {  | 
 
| 
 | 
 0  | 
 0  | 
         if (SvOK(k) && SvOK(v)) {  | 
 
| 
 | 
 0  | 
 31  | 
         if (SvOK(k) && SvOK(v)) {  | 
 
| 
 | 
 0  | 
 0  | 
         if (SvOK(k) && SvOK(v)) {  | 
 
| 
 | 
 0  | 
 0  | 
         if (SvOK(k) && SvOK(v)) {  | 
 
| 
261
 | 
 20  | 
 11  | 
             kp = SvPV(k, klen); vp = SvPV(v, vlen);  | 
 
| 
 | 
 28  | 
 3  | 
             kp = SvPV(k, klen); vp = SvPV(v, vlen);  | 
 
| 
262
 | 
 0  | 
 31  | 
             if (mcdb_make_add(mk, kp, klen, vp, vlen) != 0)  | 
 
| 
277
 | 
 8  | 
 1  | 
     if (mcdb_makefn_start(mk, fname, mcdbxs_malloc, mcdbxs_free) == 0  | 
 
| 
278
 | 
 8  | 
 0  | 
         && mcdb_make_start(mk, mk->fd, mcdbxs_malloc, mcdbxs_free) == 0) {  | 
 
| 
279
 | 
 0  | 
 8  | 
         if (items >= 3)  | 
 
| 
280
 | 
 0  | 
 0  | 
             mk->st_mode = SvIV(ST(2)); /* optional mcdb perm mode */  | 
 
| 
293
 | 
 8  | 
 0  | 
     if (sv_isobject(sv) && SvTYPE(SvRV(sv)) == SVt_PVMG)  | 
 
| 
 | 
 8  | 
 0  | 
     if (sv_isobject(sv) && SvTYPE(SvRV(sv)) == SVt_PVMG)  | 
 
| 
294
 | 
 8  | 
 0  | 
         mcdbxs_make_destroy(INT2PTR(struct mcdb_make *,SvIV((SV *)SvRV(sv))));  | 
 
| 
302
 | 
 0  | 
 8  | 
     if (items >= 2)  | 
 
| 
303
 | 
 0  | 
 0  | 
         do_fsync = SvIV(ST(1)) != 0; /* optional control fsync */  | 
 
| 
304
 | 
 8  | 
 0  | 
     if (mcdb_make_finish(mk) != 0 || mcdb_makefn_finish(mk, do_fsync) != 0) {  | 
 
| 
 | 
 0  | 
 8  | 
     if (mcdb_make_finish(mk) != 0 || mcdb_makefn_finish(mk, do_fsync) != 0) {  |