Two SQLite APIs, sqlite3_exec() and sqlite3_mprintf(), return strings in memory obtained from a malloc-like memory allocator. The documentation has always said that you need to use sqlite3_free() in order to free those strings. But, as it happens, it has until now worked to call plain old free().
But that might change. In the latest code in CVS, if you disregard the documentation and use free() in place of sqlite3_free(), it will likely lead to a segfault. It might still work depending on how you compile. But a segfault is the more likely outcome. So correct code should continue to work fine. But broken code that happened to work before might now really break. I'm hoping that this change will not have too much adverse impact. If you think this change might cause excessive hardship, please let me know (before the next release!) and we will consider using (suboptimal) alternatives that allow the older broken code to continue functioning. If I do not hear a sufficiently large outcry, the new code will appear in the next release. -- D. Richard Hipp <[EMAIL PROTECTED]>