@@ -387,9 +387,9 @@ class Index {
387387 memcpy (element_levels_npy, appr_alg->element_levels_ .data (), appr_alg->element_levels_ .size () * sizeof (int ));
388388
389389 for (size_t i = 0 ; i < appr_alg->cur_element_count ; i++) {
390- size_t linkListSize = appr_alg->element_levels_ [i] > 0 ? appr_alg-> size_links_per_element_ * appr_alg->element_levels_ [i] : 0 ;
390+ size_t linkListSize = appr_alg->size_links_per_element_ * appr_alg->element_levels_ [i];
391391 if (linkListSize) {
392- memcpy (link_list_npy + link_npy_offsets[i], appr_alg->linkLists_ [i] , linkListSize);
392+ memcpy (link_list_npy + link_npy_offsets[i], appr_alg->getLinkListPtr (i) , linkListSize);
393393 }
394394 }
395395
@@ -583,11 +583,12 @@ class Index {
583583 if (linkListSize == 0 ) {
584584 appr_alg->setLinkListPtr (i, nullptr );
585585 } else {
586- appr_alg-> setLinkListPtr (i, ( char *) malloc (linkListSize));
587- if (appr_alg-> getLinkListPtr (i) == nullptr )
586+ char * linkListPtr = reinterpret_cast < char *>( malloc (linkListSize));
587+ if (linkListPtr == nullptr )
588588 HNSWLIB_THROW_RUNTIME_ERROR (" Not enough memory: loadIndex failed to allocate linklist" );
589+ appr_alg->setLinkListPtr (i, linkListPtr);
589590
590- memcpy (appr_alg-> linkLists_ [i] , link_list_npy.data () + link_npy_offsets[i], linkListSize);
591+ memcpy (linkListPtr , link_list_npy.data () + link_npy_offsets[i], linkListSize);
591592 }
592593 }
593594
0 commit comments