1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-10-27 08:52:26 +03:00

Automatically deallocate thread-specific data when it is no longer

being used.  Ticket #1601.  Also implemented the suggestion of
ticket #1603. Memory management is now off by default at compile-time.
The sqlite3_enable_memory_management() API has been removed. (CVS 2919)

FossilOrigin-Name: 5d9c6aa964305c3f36741ff0058da5b5f3ce0d24
This commit is contained in:
drh
2006-01-11 21:41:20 +00:00
parent 0203bde908
commit 6f7adc8a80
31 changed files with 334 additions and 299 deletions

View File

@@ -12,7 +12,7 @@
** This file contains C code routines that are called by the parser
** to handle INSERT statements in SQLite.
**
** $Id: insert.c,v 1.156 2006/01/10 17:58:23 danielk1977 Exp $
** $Id: insert.c,v 1.157 2006/01/11 21:41:22 drh Exp $
*/
#include "sqliteInt.h"
@@ -225,7 +225,9 @@ void sqlite3Insert(
int counterRowid; /* Memory cell holding rowid of autoinc counter */
#endif
if( pParse->nErr || sqlite3ThreadData()->mallocFailed ) goto insert_cleanup;
if( pParse->nErr || sqlite3ThreadDataReadOnly()->mallocFailed ){
goto insert_cleanup;
}
db = pParse->db;
/* Locate the table into which we will be inserting new information.
@@ -331,7 +333,9 @@ void sqlite3Insert(
/* Resolve the expressions in the SELECT statement and execute it. */
rc = sqlite3Select(pParse, pSelect, SRT_Subroutine, iInsertBlock,0,0,0,0);
if( rc || pParse->nErr || sqlite3ThreadData()->mallocFailed ) goto insert_cleanup;
if( rc || pParse->nErr || sqlite3ThreadDataReadOnly()->mallocFailed ){
goto insert_cleanup;
}
iCleanup = sqlite3VdbeMakeLabel(v);
sqlite3VdbeAddOp(v, OP_Goto, 0, iCleanup);