From 2d325ba8f6c7d74cf3733e134ce952e30f7961c7 Mon Sep 17 00:00:00 2001 From: Nikita Sivukhin Date: Mon, 12 Aug 2024 18:46:14 +0400 Subject: [PATCH] windows compiler complains about operations with void* pointers - error C2036: 'void *': unknown size ... --- .../bundled/SQLite3MultipleCiphers/src/sqlite3.c | 16 ++++++++-------- libsql-ffi/bundled/src/sqlite3.c | 16 ++++++++-------- libsql-sqlite3/src/vectordiskann.c | 16 ++++++++-------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/libsql-ffi/bundled/SQLite3MultipleCiphers/src/sqlite3.c b/libsql-ffi/bundled/SQLite3MultipleCiphers/src/sqlite3.c index 1fd0252f0d..2dcd939f21 100644 --- a/libsql-ffi/bundled/SQLite3MultipleCiphers/src/sqlite3.c +++ b/libsql-ffi/bundled/SQLite3MultipleCiphers/src/sqlite3.c @@ -212669,7 +212669,7 @@ int distanceBufferInsertIdx(const float *aDistances, int nSize, int nMaxSize, fl return nSize < nMaxSize ? nSize : -1; } -void bufferInsert(void *aBuffer, int nSize, int nMaxSize, int iInsert, int nItemSize, const void *pItem, void *pLast) { +void bufferInsert(u8 *aBuffer, int nSize, int nMaxSize, int iInsert, int nItemSize, const u8 *pItem, u8 *pLast) { int itemsToMove; assert( nMaxSize > 0 && nItemSize > 0 ); @@ -212687,7 +212687,7 @@ void bufferInsert(void *aBuffer, int nSize, int nMaxSize, int iInsert, int nItem memcpy(aBuffer + iInsert * nItemSize, pItem, nItemSize); } -void bufferDelete(void *aBuffer, int nSize, int iDelete, int nItemSize) { +void bufferDelete(u8 *aBuffer, int nSize, int iDelete, int nItemSize) { int itemsToMove; assert( nItemSize > 0 ); @@ -212850,8 +212850,8 @@ static void diskAnnSearchCtxMarkVisited(DiskAnnSearchCtx *pCtx, DiskAnnNode *pNo if( iInsert < 0 ){ return; } - bufferInsert(pCtx->aTopCandidates, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(DiskAnnNode*), &pNode, NULL); - bufferInsert(pCtx->aTopDistances, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(float), &distance, NULL); + bufferInsert((u8*)pCtx->aTopCandidates, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(DiskAnnNode*), (u8*)&pNode, NULL); + bufferInsert((u8*)pCtx->aTopDistances, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(float), (u8*)&distance, NULL); pCtx->nTopCandidates = MIN(pCtx->nTopCandidates + 1, pCtx->maxTopCandidates); } @@ -212872,8 +212872,8 @@ static void diskAnnSearchCtxDeleteCandidate(DiskAnnSearchCtx *pCtx, int iDelete) assert( pCtx->aCandidates[iDelete]->pBlobSpot == NULL ); diskAnnNodeFree(pCtx->aCandidates[iDelete]); - bufferDelete(pCtx->aCandidates, pCtx->nCandidates, iDelete, sizeof(DiskAnnNode*)); - bufferDelete(pCtx->aDistances, pCtx->nCandidates, iDelete, sizeof(float)); + bufferDelete((u8*)pCtx->aCandidates, pCtx->nCandidates, iDelete, sizeof(DiskAnnNode*)); + bufferDelete((u8*)pCtx->aDistances, pCtx->nCandidates, iDelete, sizeof(float)); pCtx->nCandidates--; pCtx->nUnvisited--; @@ -212881,8 +212881,8 @@ static void diskAnnSearchCtxDeleteCandidate(DiskAnnSearchCtx *pCtx, int iDelete) static void diskAnnSearchCtxInsertCandidate(DiskAnnSearchCtx *pCtx, int iInsert, DiskAnnNode* pCandidate, float distance){ DiskAnnNode *pLast = NULL; - bufferInsert(pCtx->aCandidates, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(DiskAnnNode*), &pCandidate, &pLast); - bufferInsert(pCtx->aDistances, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(float), &distance, NULL); + bufferInsert((u8*)pCtx->aCandidates, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(DiskAnnNode*), (u8*)&pCandidate, (u8*)&pLast); + bufferInsert((u8*)pCtx->aDistances, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(float), (u8*)&distance, NULL); pCtx->nCandidates = MIN(pCtx->nCandidates + 1, pCtx->maxCandidates); if( pLast != NULL && !pLast->visited ){ // since pLast is not visited it should have uninitialized pBlobSpot - so it's safe to completely free the node diff --git a/libsql-ffi/bundled/src/sqlite3.c b/libsql-ffi/bundled/src/sqlite3.c index 1fd0252f0d..2dcd939f21 100644 --- a/libsql-ffi/bundled/src/sqlite3.c +++ b/libsql-ffi/bundled/src/sqlite3.c @@ -212669,7 +212669,7 @@ int distanceBufferInsertIdx(const float *aDistances, int nSize, int nMaxSize, fl return nSize < nMaxSize ? nSize : -1; } -void bufferInsert(void *aBuffer, int nSize, int nMaxSize, int iInsert, int nItemSize, const void *pItem, void *pLast) { +void bufferInsert(u8 *aBuffer, int nSize, int nMaxSize, int iInsert, int nItemSize, const u8 *pItem, u8 *pLast) { int itemsToMove; assert( nMaxSize > 0 && nItemSize > 0 ); @@ -212687,7 +212687,7 @@ void bufferInsert(void *aBuffer, int nSize, int nMaxSize, int iInsert, int nItem memcpy(aBuffer + iInsert * nItemSize, pItem, nItemSize); } -void bufferDelete(void *aBuffer, int nSize, int iDelete, int nItemSize) { +void bufferDelete(u8 *aBuffer, int nSize, int iDelete, int nItemSize) { int itemsToMove; assert( nItemSize > 0 ); @@ -212850,8 +212850,8 @@ static void diskAnnSearchCtxMarkVisited(DiskAnnSearchCtx *pCtx, DiskAnnNode *pNo if( iInsert < 0 ){ return; } - bufferInsert(pCtx->aTopCandidates, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(DiskAnnNode*), &pNode, NULL); - bufferInsert(pCtx->aTopDistances, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(float), &distance, NULL); + bufferInsert((u8*)pCtx->aTopCandidates, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(DiskAnnNode*), (u8*)&pNode, NULL); + bufferInsert((u8*)pCtx->aTopDistances, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(float), (u8*)&distance, NULL); pCtx->nTopCandidates = MIN(pCtx->nTopCandidates + 1, pCtx->maxTopCandidates); } @@ -212872,8 +212872,8 @@ static void diskAnnSearchCtxDeleteCandidate(DiskAnnSearchCtx *pCtx, int iDelete) assert( pCtx->aCandidates[iDelete]->pBlobSpot == NULL ); diskAnnNodeFree(pCtx->aCandidates[iDelete]); - bufferDelete(pCtx->aCandidates, pCtx->nCandidates, iDelete, sizeof(DiskAnnNode*)); - bufferDelete(pCtx->aDistances, pCtx->nCandidates, iDelete, sizeof(float)); + bufferDelete((u8*)pCtx->aCandidates, pCtx->nCandidates, iDelete, sizeof(DiskAnnNode*)); + bufferDelete((u8*)pCtx->aDistances, pCtx->nCandidates, iDelete, sizeof(float)); pCtx->nCandidates--; pCtx->nUnvisited--; @@ -212881,8 +212881,8 @@ static void diskAnnSearchCtxDeleteCandidate(DiskAnnSearchCtx *pCtx, int iDelete) static void diskAnnSearchCtxInsertCandidate(DiskAnnSearchCtx *pCtx, int iInsert, DiskAnnNode* pCandidate, float distance){ DiskAnnNode *pLast = NULL; - bufferInsert(pCtx->aCandidates, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(DiskAnnNode*), &pCandidate, &pLast); - bufferInsert(pCtx->aDistances, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(float), &distance, NULL); + bufferInsert((u8*)pCtx->aCandidates, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(DiskAnnNode*), (u8*)&pCandidate, (u8*)&pLast); + bufferInsert((u8*)pCtx->aDistances, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(float), (u8*)&distance, NULL); pCtx->nCandidates = MIN(pCtx->nCandidates + 1, pCtx->maxCandidates); if( pLast != NULL && !pLast->visited ){ // since pLast is not visited it should have uninitialized pBlobSpot - so it's safe to completely free the node diff --git a/libsql-sqlite3/src/vectordiskann.c b/libsql-sqlite3/src/vectordiskann.c index a6c279b259..7b29c6f50f 100644 --- a/libsql-sqlite3/src/vectordiskann.c +++ b/libsql-sqlite3/src/vectordiskann.c @@ -913,7 +913,7 @@ int distanceBufferInsertIdx(const float *aDistances, int nSize, int nMaxSize, fl return nSize < nMaxSize ? nSize : -1; } -void bufferInsert(void *aBuffer, int nSize, int nMaxSize, int iInsert, int nItemSize, const void *pItem, void *pLast) { +void bufferInsert(u8 *aBuffer, int nSize, int nMaxSize, int iInsert, int nItemSize, const u8 *pItem, u8 *pLast) { int itemsToMove; assert( nMaxSize > 0 && nItemSize > 0 ); @@ -931,7 +931,7 @@ void bufferInsert(void *aBuffer, int nSize, int nMaxSize, int iInsert, int nItem memcpy(aBuffer + iInsert * nItemSize, pItem, nItemSize); } -void bufferDelete(void *aBuffer, int nSize, int iDelete, int nItemSize) { +void bufferDelete(u8 *aBuffer, int nSize, int iDelete, int nItemSize) { int itemsToMove; assert( nItemSize > 0 ); @@ -1094,8 +1094,8 @@ static void diskAnnSearchCtxMarkVisited(DiskAnnSearchCtx *pCtx, DiskAnnNode *pNo if( iInsert < 0 ){ return; } - bufferInsert(pCtx->aTopCandidates, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(DiskAnnNode*), &pNode, NULL); - bufferInsert(pCtx->aTopDistances, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(float), &distance, NULL); + bufferInsert((u8*)pCtx->aTopCandidates, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(DiskAnnNode*), (u8*)&pNode, NULL); + bufferInsert((u8*)pCtx->aTopDistances, pCtx->nTopCandidates, pCtx->maxTopCandidates, iInsert, sizeof(float), (u8*)&distance, NULL); pCtx->nTopCandidates = MIN(pCtx->nTopCandidates + 1, pCtx->maxTopCandidates); } @@ -1116,8 +1116,8 @@ static void diskAnnSearchCtxDeleteCandidate(DiskAnnSearchCtx *pCtx, int iDelete) assert( pCtx->aCandidates[iDelete]->pBlobSpot == NULL ); diskAnnNodeFree(pCtx->aCandidates[iDelete]); - bufferDelete(pCtx->aCandidates, pCtx->nCandidates, iDelete, sizeof(DiskAnnNode*)); - bufferDelete(pCtx->aDistances, pCtx->nCandidates, iDelete, sizeof(float)); + bufferDelete((u8*)pCtx->aCandidates, pCtx->nCandidates, iDelete, sizeof(DiskAnnNode*)); + bufferDelete((u8*)pCtx->aDistances, pCtx->nCandidates, iDelete, sizeof(float)); pCtx->nCandidates--; pCtx->nUnvisited--; @@ -1125,8 +1125,8 @@ static void diskAnnSearchCtxDeleteCandidate(DiskAnnSearchCtx *pCtx, int iDelete) static void diskAnnSearchCtxInsertCandidate(DiskAnnSearchCtx *pCtx, int iInsert, DiskAnnNode* pCandidate, float distance){ DiskAnnNode *pLast = NULL; - bufferInsert(pCtx->aCandidates, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(DiskAnnNode*), &pCandidate, &pLast); - bufferInsert(pCtx->aDistances, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(float), &distance, NULL); + bufferInsert((u8*)pCtx->aCandidates, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(DiskAnnNode*), (u8*)&pCandidate, (u8*)&pLast); + bufferInsert((u8*)pCtx->aDistances, pCtx->nCandidates, pCtx->maxCandidates, iInsert, sizeof(float), (u8*)&distance, NULL); pCtx->nCandidates = MIN(pCtx->nCandidates + 1, pCtx->maxCandidates); if( pLast != NULL && !pLast->visited ){ // since pLast is not visited it should have uninitialized pBlobSpot - so it's safe to completely free the node