diff --git a/similarity_search/src/space/space_sparse_vector_inter.cc b/similarity_search/src/space/space_sparse_vector_inter.cc index 0ed86dc..a5c0e73 100644 --- a/similarity_search/src/space/space_sparse_vector_inter.cc +++ b/similarity_search/src/space/space_sparse_vector_inter.cc @@ -55,13 +55,10 @@ Object* SpaceSparseVectorInter::CreateObjFromVect(IdType id, LabelType l char *pData = NULL; size_t dataLen = 0; - try { - PackSparseElements(InpVect, pData, dataLen); - return new Object(id, label, dataLen, pData); - } catch (...) { - delete [] pData; - throw; - } + PackSparseElements(InpVect, pData, dataLen); + unique_ptr data(pData); + unique_ptr obj(new Object(id, label, dataLen, data.get())); + return obj.release(); } template