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) { |