line |
true |
false |
branch |
15
|
0 |
0 |
Darts::DoubleArray *dp = new Darts::DoubleArray; |
16
|
0 |
0 |
std::vector keys; |
|
0 |
0 |
std::vector keys; |
18
|
0 |
0 |
for (i = 0, l = av_len(av)+1; i < l; i++){ |
|
0 |
0 |
for (i = 0, l = av_len(av)+1; i < l; i++){ |
19
|
0 |
0 |
keys.push_back(SvPV_nolen(AvARRAY(av)[i])); |
|
0 |
0 |
keys.push_back(SvPV_nolen(AvARRAY(av)[i])); |
|
0 |
0 |
keys.push_back(SvPV_nolen(AvARRAY(av)[i])); |
21
|
0 |
0 |
dp->build(keys.size(), &keys[0], 0, 0); |
26
|
0 |
0 |
delete INT2PTR(Darts::DoubleArray *, dpi); |
32
|
0 |
0 |
if (dp->open(filename) == -1){ |
33
|
0 |
0 |
delete dp; |
42
|
0 |
0 |
size_t num = dp->commonPrefixSearch(str, result_pair, sizeof(result_pair)); |
53
|
0 |
0 |
PUSHMARK(sp); |
54
|
0 |
0 |
XPUSHs(s); |
58
|
0 |
0 |
if (argc != 1){ |
63
|
0 |
0 |
FREETMPS; |
70
|
0 |
0 |
return val && *val ? *val : &PL_sv_undef; |
|
0 |
0 |
return val && *val ? *val : &PL_sv_undef; |
75
|
0 |
0 |
SV *result = newSV(SvCUR(src)); |
79
|
0 |
0 |
char *head = SvPV_nolen(src); |
|
0 |
0 |
char *head = SvPV_nolen(src); |
82
|
0 |
0 |
while (head < tail) { |
85
|
0 |
0 |
while(head < tail){ |
87
|
0 |
0 |
dp->commonPrefixSearch(head,result_pair, sizeof(result_pair)); |
88
|
0 |
0 |
if (size) break; |
91
|
0 |
0 |
if (head != ohead){ |
94
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
95
|
0 |
0 |
sv_catpvn(result, ohead, d); |
97
|
0 |
0 |
if (size) { |
99
|
0 |
0 |
for (size_t i = 0; i < size; ++i) { |
100
|
0 |
0 |
if (seekto < result_pair[i].length) |
103
|
0 |
0 |
if (seekto) { |
105
|
0 |
0 |
? do_callback(rep, newSVpvn(head, seekto)) |
106
|
0 |
0 |
: do_hvlookup(rep, head, seekto); |
|
0 |
0 |
: do_hvlookup(rep, head, seekto); |
|
0 |
0 |
: do_hvlookup(rep, head, seekto); |
108
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
|
0 |
0 |
if (rlen > SvCUR(result)) SvGROW(result, SvCUR(result)*2); |
109
|
0 |
0 |
sv_catpvn(result, SvPVX(ret), SvCUR(ret)); |