Show More
@@ -636,6 +636,24 b' static int nt_insert(indexObject *self, ' | |||
|
636 | 636 | return -1; |
|
637 | 637 | } |
|
638 | 638 | |
|
639 | static int nt_init(indexObject *self) | |
|
640 | { | |
|
641 | if (self->nt == NULL) { | |
|
642 | self->ntcapacity = self->raw_length < 4 | |
|
643 | ? 4 : self->raw_length / 2; | |
|
644 | self->nt = calloc(self->ntcapacity, sizeof(nodetree)); | |
|
645 | if (self->nt == NULL) { | |
|
646 | PyErr_NoMemory(); | |
|
647 | return -1; | |
|
648 | } | |
|
649 | self->ntlength = 1; | |
|
650 | self->ntrev = (int)index_length(self) - 1; | |
|
651 | self->ntlookups = 1; | |
|
652 | self->ntmisses = 0; | |
|
653 | } | |
|
654 | return 0; | |
|
655 | } | |
|
656 | ||
|
639 | 657 | /* |
|
640 | 658 | * Return values: |
|
641 | 659 | * |
@@ -653,19 +671,8 b' static int index_find_node(indexObject *' | |||
|
653 | 671 | if (rev >= -1) |
|
654 | 672 | return rev; |
|
655 | 673 | |
|
656 | if (self->nt == NULL) { | |
|
657 | self->ntcapacity = self->raw_length < 4 | |
|
658 | ? 4 : self->raw_length / 2; | |
|
659 | self->nt = calloc(self->ntcapacity, sizeof(nodetree)); | |
|
660 | if (self->nt == NULL) { | |
|
661 | PyErr_SetString(PyExc_MemoryError, "out of memory"); | |
|
674 | if (nt_init(self) == -1) | |
|
662 | 675 |
|
|
663 | } | |
|
664 | self->ntlength = 1; | |
|
665 | self->ntrev = (int)index_length(self) - 1; | |
|
666 | self->ntlookups = 1; | |
|
667 | self->ntmisses = 0; | |
|
668 | } | |
|
669 | 676 | |
|
670 | 677 | /* |
|
671 | 678 | * For the first handful of lookups, we scan the entire index, |
General Comments 0
You need to be logged in to leave comments.
Login now