| line |
true |
false |
branch |
|
173
|
2 |
297 |
if(c->is_utf8) |
|
176
|
0 |
299 |
if (cdb_read(c, buf, len, cdb_datapos(c)) == -1) |
|
189
|
0 |
277 |
if(c->is_utf8) |
|
206
|
0 |
285 |
if (newpos < len) { |
|
217
|
43 |
14 |
if (!head || (head->num >= CDB_HPLIST)) { |
|
|
0 |
43 |
if (!head || (head->num >= CDB_HPLIST)) { |
|
227
|
0 |
57 |
if (posplus(c, 8) == -1) |
|
229
|
0 |
57 |
if (posplus(c, keylen) == -1) |
|
231
|
0 |
57 |
if (posplus(c, datalen) == -1) |
|
244
|
749 |
205 |
while (len) { |
|
280
|
0 |
147 |
if(c->map == NULL) croak("Called cdb_map_addr on a system without mmap"); |
|
282
|
147 |
0 |
if ((pos > c->size) || (c->size - pos < len)) { |
|
|
0 |
147 |
if ((pos > c->size) || (c->size - pos < len)) { |
|
293
|
2182 |
1 |
if (c->map) { |
|
294
|
2182 |
0 |
if ((pos > c->size) || (c->size - pos < len)) { |
|
|
0 |
2182 |
if ((pos > c->size) || (c->size - pos < len)) { |
|
303
|
0 |
1 |
if (PerlIO_seek(c->fh, pos, SEEK_SET) == -1) return -1; |
|
304
|
1 |
0 |
while (len > 0) { |
|
308
|
0 |
1 |
while ((r == -1) && (errno == EINTR)); |
|
|
0 |
0 |
while ((r == -1) && (errno == EINTR)); |
|
309
|
0 |
1 |
if (r == -1) return -1; |
|
310
|
1 |
0 |
if (r == 0) { |
|
323
|
0 |
470 |
if( left->is_utf8 != right->is_utf8 ) { |
|
324
|
0 |
0 |
if(left->is_utf8) |
|
331
|
469 |
1 |
return (left->len == right->len) && memEQ(left->pv, right->pv, right->len); |
|
|
467 |
2 |
return (left->len == right->len) && memEQ(left->pv, right->pv, right->len); |
|
383
|
148 |
18 |
if (!c->loop) { |
|
384
|
0 |
148 |
if(to_find->hash != 0) /* hash cache (except when the value is 0) */ |
|
390
|
1 |
147 |
if (cdb_read(c,buf,8,(u << 3) & 2047) == -1) |
|
393
|
7 |
140 |
if (!c->hslots) |
|
403
|
158 |
0 |
while (c->loop < c->hslots) { |
|
404
|
0 |
158 |
if (cdb_read(c,buf,8,c->kpos) == -1) |
|
407
|
11 |
147 |
if (!pos) |
|
411
|
118 |
29 |
if (c->kpos == c->hpos + (c->hslots << 3)) |
|
414
|
147 |
0 |
if (u == c->khash) { |
|
415
|
0 |
147 |
if (cdb_read(c,buf,8,pos) == -1) |
|
418
|
147 |
0 |
if (next_key_len == to_find->len) { |
|
448
|
548 |
7 |
if (c->curkey_allocated >= len && c->curkey_allocated < CDB_MAX_BUFFER_LEN) return; |
|
|
548 |
0 |
if (c->curkey_allocated >= len && c->curkey_allocated < CDB_MAX_BUFFER_LEN) return; |
|
451
|
7 |
0 |
if(len < CDB_MAX_BUFFER_LEN && c->curkey_allocated > CDB_MAX_BUFFER_LEN) { |
|
|
0 |
7 |
if(len < CDB_MAX_BUFFER_LEN && c->curkey_allocated > CDB_MAX_BUFFER_LEN) { |
|
458
|
0 |
7 |
if(c->curkey.pv) |
|
472
|
0 |
56 |
if (cdb_read(c, buf, 4, 0) == -1) |
|
484
|
409 |
47 |
if (c->curpos < c->end) { |
|
485
|
0 |
409 |
if (cdb_read(c, buf, 8, c->curpos) == -1) |
|
491
|
0 |
409 |
if (cdb_read(c, c->curkey.pv, klen, c->curpos + 8) == -1) |
|
502
|
0 |
401 |
if (cdb_read(c, buf, 8, c->curpos) == -1) |
|
510
|
31 |
11 |
if (c->end != 0) { |
|
574
|
3 |
15 |
if(strlen(option_key) == 4 && strnEQ("utf8", option_key, 4) && is_utf8 ) |
|
|
3 |
0 |
if(strlen(option_key) == 4 && strnEQ("utf8", option_key, 4) && is_utf8 ) |
|
|
1 |
2 |
if(strlen(option_key) == 4 && strnEQ("utf8", option_key, 4) && is_utf8 ) |
|
585
|
1 |
17 |
if (!f) |
|
593
|
17 |
0 |
if (fstat(fd, &st) == 0) { |
|
594
|
17 |
0 |
if (st.st_size <= 0xffffffff) { |
|
598
|
16 |
1 |
if (x != (char *)-1) { |
|
620
|
1 |
174 |
if (!SvOK(k)) { |
|
|
1 |
0 |
if (!SvOK(k)) { |
|
|
1 |
0 |
if (!SvOK(k)) { |
|
624
|
2 |
172 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
1 |
1 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
172 |
0 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
626
|
2 |
172 |
to_find.is_utf8 = this->is_utf8 && SvUTF8(k); |
|
|
2 |
0 |
to_find.is_utf8 = this->is_utf8 && SvUTF8(k); |
|
629
|
159 |
15 |
if (this->end && cdb_key_eq(&this->curkey, &to_find)) { |
|
|
156 |
3 |
if (this->end && cdb_key_eq(&this->curkey, &to_find)) { |
|
630
|
0 |
156 |
if (cdb_read(this, buf, 8, this->curpos) == -1) |
|
634
|
126 |
30 |
if (this->fetch_advance) { |
|
636
|
13 |
113 |
if (!iter_key(this)) { |
|
645
|
16 |
2 |
if ((found != 0) && (found != 1)) readerror(); |
|
|
1 |
15 |
if ((found != 0) && (found != 1)) readerror(); |
|
648
|
171 |
2 |
if (found) { |
|
674
|
110 |
12 |
while(iter_key(this)) { |
|
677
|
110 |
0 |
if ((found != 0) && (found != 1)) |
|
|
0 |
110 |
if ((found != 0) && (found != 1)) |
|
685
|
0 |
110 |
if (! hv_store_ent(RETVAL, keysv, keyvalue, 0)) { |
|
709
|
0 |
12 |
if (!SvOK(k)) { |
|
|
0 |
0 |
if (!SvOK(k)) { |
|
|
0 |
0 |
if (!SvOK(k)) { |
|
716
|
0 |
12 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
0 |
0 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
11 |
1 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
722
|
18 |
12 |
if ((found != 0) && (found != 1)) |
|
|
0 |
18 |
if ((found != 0) && (found != 1)) |
|
724
|
12 |
18 |
if (!found) |
|
745
|
1 |
8 |
if (!SvOK(k)) { |
|
|
1 |
0 |
if (!SvOK(k)) { |
|
|
1 |
0 |
if (!SvOK(k)) { |
|
749
|
0 |
8 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
0 |
0 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
8 |
0 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
754
|
4 |
4 |
if (RETVAL != 0 && RETVAL != 1) |
|
|
0 |
4 |
if (RETVAL != 0 && RETVAL != 1) |
|
768
|
18 |
0 |
if (sv_isobject(db) && (SvTYPE(SvRV(db)) == SVt_PVMG) ) { |
|
|
17 |
1 |
if (sv_isobject(db) && (SvTYPE(SvRV(db)) == SVt_PVMG) ) { |
|
769
|
17 |
0 |
this = (cdb*)SvIV(SvRV(db)); |
|
771
|
7 |
10 |
if (this->curkey.pv) |
|
776
|
16 |
1 |
if (this->map) { |
|
791
|
21 |
3 |
if (iter_key(this)) { |
|
808
|
0 |
165 |
if (!SvOK(k)) { |
|
|
0 |
0 |
if (!SvOK(k)) { |
|
|
0 |
0 |
if (!SvOK(k)) { |
|
812
|
0 |
165 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
0 |
0 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
|
165 |
0 |
to_find.pv = this->is_utf8 ? SvPVutf8(k, to_find.len) : SvPV(k, to_find.len); |
|
818
|
164 |
1 |
if (this->end == 0 || !cdb_key_eq(&this->curkey, &to_find)) |
|
|
0 |
164 |
if (this->end == 0 || !cdb_key_eq(&this->curkey, &to_find)) |
|
821
|
146 |
19 |
if (iter_key(this)) { |
|
846
|
5 |
12 |
if(strlen(option_key) == 4 && strnEQ("utf8", option_key, 4) && is_utf8 ) |
|
|
5 |
0 |
if(strlen(option_key) == 4 && strnEQ("utf8", option_key, 4) && is_utf8 ) |
|
|
2 |
3 |
if(strlen(option_key) == 4 && strnEQ("utf8", option_key, 4) && is_utf8 ) |
|
857
|
1 |
16 |
if (!cdbmake->f) XSRETURN_UNDEF; |
|
859
|
0 |
16 |
if (cdb_make_start(cdbmake) < 0) XSRETURN_UNDEF; |
|
884
|
16 |
0 |
if (sv_isobject(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG) ) { |
|
|
16 |
0 |
if (sv_isobject(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG) ) { |
|
885
|
16 |
0 |
this = (cdb_make*)SvIV(SvRV(sv)); |
|
886
|
0 |
16 |
if(this->f) { |
|
908
|
57 |
50 |
for (x = 1; x < items; x += 2) { |
|
912
|
1 |
56 |
if(!SvOK(k)) { |
|
|
1 |
0 |
if(!SvOK(k)) { |
|
|
1 |
0 |
if(!SvOK(k)) { |
|
917
|
2 |
55 |
if(!SvOK(v)) { |
|
|
2 |
0 |
if(!SvOK(v)) { |
|
|
2 |
0 |
if(!SvOK(v)) { |
|
922
|
5 |
52 |
kp = is_utf8 ? SvPVutf8(k, klen) : SvPV(k, klen); |
|
|
1 |
4 |
kp = is_utf8 ? SvPVutf8(k, klen) : SvPV(k, klen); |
|
|
41 |
11 |
kp = is_utf8 ? SvPVutf8(k, klen) : SvPV(k, klen); |
|
923
|
5 |
52 |
vp = is_utf8 ? SvPVutf8(v, vlen) : SvPV(v, vlen); |
|
|
1 |
4 |
vp = is_utf8 ? SvPVutf8(v, vlen) : SvPV(v, vlen); |
|
|
48 |
4 |
vp = is_utf8 ? SvPVutf8(v, vlen) : SvPV(v, vlen); |
|
928
|
0 |
57 |
if (PerlIO_write(this->f, packbuf, 8) < 8) |
|
932
|
0 |
57 |
if (PerlIO_write(this->f, kp, klen) < klen) |
|
934
|
0 |
57 |
if (PerlIO_write(this->f, vp, vlen) < vlen) |
|
937
|
0 |
57 |
if (cdb_make_addend(this, klen, vlen, h) == -1) |
|
954
|
4096 |
16 |
for (i = 0; i < 256; ++i) |
|
957
|
14 |
16 |
for (x = this->head; x; x = x->next) { |
|
959
|
57 |
14 |
while (i--) { |
|
965
|
4096 |
16 |
for (i = 0; i < 256; ++i) { |
|
967
|
14 |
4082 |
if (u > memsize) |
|
974
|
0 |
16 |
if (memsize > u) { |
|
979
|
0 |
16 |
New(0xCDB, this->split, memsize, struct cdb_hp); |
|
984
|
4096 |
16 |
for (i = 0; i < 256; ++i) { |
|
990
|
14 |
16 |
for (x = this->head; x; x = x->next) { |
|
992
|
57 |
14 |
while (i--) { |
|
996
|
0 |
14 |
if (prev) |
|
1001
|
14 |
2 |
if (prev) |
|
1004
|
4096 |
16 |
for (i = 0; i < 256; ++i) { |
|
1011
|
114 |
4096 |
for (u = 0; u < len; ++u) { |
|
1016
|
57 |
4096 |
for (u = 0; u < count; ++u) { |
|
1018
|
3 |
57 |
while (this->hash[where].p) { |
|
1019
|
2 |
1 |
if (++where == len) |
|
1026
|
114 |
4096 |
for (u = 0; u < len; ++u) { |
|
1030
|
0 |
114 |
if (PerlIO_write(this->f, buf, 8) == -1) |
|
1033
|
0 |
114 |
if (posplus(this, 8) == -1) |
|
1040
|
0 |
16 |
if (PerlIO_flush(this->f) == EOF) writeerror(); |
|
1043
|
0 |
16 |
if (PerlIO_write(this->f, this->final, sizeof this->final) < sizeof this->final) |
|
1046
|
0 |
16 |
if (PerlIO_flush(this->f) == EOF) |
|
1049
|
0 |
16 |
if (fsync(PerlIO_fileno(this->f)) == -1) |
|
1052
|
0 |
16 |
if (PerlIO_close(this->f) == EOF) |
|
1056
|
0 |
16 |
if (rename(this->fntemp, this->fn)) { |