圍繞在源代碼行#15195,評論下面幾行:
/*
** Windows systems have malloc_usable_size() but it is called _msize()
*/
#if !defined(HAVE_MALLOC_USABLE_SIZE) && SQLITE_OS_WIN
# define HAVE_MALLOC_USABLE_SIZE 1
# define malloc_usable_size _msize
#endif
到
/*
** Windows systems have malloc_usable_size() but it is called _msize()
#if !defined(HAVE_MALLOC_USABLE_SIZE) && SQLITE_OS_WIN
# define HAVE_MALLOC_USABLE_SIZE 1
# define malloc_usable_size _msize
#endif
*/
這將禁用的SQLite3的malloc的內存重用,將依靠更好FastMM4 reallocmem()實現。
請參閱this commit例如爲我們的開源實現SQLite3靜態鏈接。
其他信息:
我認爲我們會在3.7.11擺脫這個問題,如上所述by this commit:新SQLITE_WITHOUT_MSIZE
全局符號將被添加,並且將能夠構建融合源代碼不改變其內容,只需通過設置適當的SQLITE_WITHOUT_MSIZE
定義即可。與此同時,最簡單的就是評論上述內容。
我想我會傾向於找到想要使用'msize'的C代碼並嘗試在可能的情況下將其刪除。我以爲msize在任何情況下都是MSVC的特例。 – 2012-01-18 10:26:21
我懷疑,這種破解不能用於較新的堆管理器(FastMM4)。你應該更好地依靠我們的答案。 – 2012-01-18 13:07:46