Show More
@@ -546,7 +546,7 b' static inline int nt_level(const char *n' | |||
|
546 | 546 | |
|
547 | 547 | static int nt_find(indexObject *self, const char *node, Py_ssize_t nodelen) |
|
548 | 548 | { |
|
549 | int level, off; | |
|
549 | int level, maxlevel, off; | |
|
550 | 550 | |
|
551 | 551 | if (nodelen == 20 && node[0] == '\0' && memcmp(node, nullid, 20) == 0) |
|
552 | 552 | return -1; |
@@ -554,7 +554,9 b' static int nt_find(indexObject *self, co' | |||
|
554 | 554 | if (self->nt == NULL) |
|
555 | 555 | return -2; |
|
556 | 556 | |
|
557 | for (level = off = 0; level < nodelen; level++) { | |
|
557 | maxlevel = nodelen > 20 ? 40 : ((int)nodelen * 2); | |
|
558 | ||
|
559 | for (level = off = 0; level < maxlevel; level++) { | |
|
558 | 560 | int k = nt_level(node, level); |
|
559 | 561 | nodetree *n = &self->nt[off]; |
|
560 | 562 | int v = n->children[k]; |
@@ -596,7 +598,7 b' static int nt_insert(indexObject *self, ' | |||
|
596 | 598 | int level = 0; |
|
597 | 599 | int off = 0; |
|
598 | 600 | |
|
599 |
while (level < |
|
|
601 | while (level < 40) { | |
|
600 | 602 | int k = nt_level(node, level); |
|
601 | 603 | nodetree *n; |
|
602 | 604 | int v; |
General Comments 0
You need to be logged in to leave comments.
Login now