diff options
author | drh <drh@noemail.net> | 2006-01-11 21:41:20 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2006-01-11 21:41:20 +0000 |
commit | 6f7adc8a8036ec2d30ba4cd12610e0cba5834640 (patch) | |
tree | da5457aef1a8cb9194acffdf80b19f512aea3823 /src/trigger.c | |
parent | 0203bde908cb15eecef3a03c9761827e165d71db (diff) | |
download | sqlite-6f7adc8a8036ec2d30ba4cd12610e0cba5834640.tar.gz sqlite-6f7adc8a8036ec2d30ba4cd12610e0cba5834640.zip |
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
Diffstat (limited to 'src/trigger.c')
-rw-r--r-- | src/trigger.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/trigger.c b/src/trigger.c index fbe8951bb..6a031c0bd 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -81,14 +81,16 @@ void sqlite3BeginTrigger( ** If sqlite3SrcListLookup() returns 0, indicating the table does not ** exist, the error is caught by the block below. */ - if( !pTableName || sqlite3ThreadData()->mallocFailed ) goto trigger_cleanup; + if( !pTableName || sqlite3ThreadDataReadOnly()->mallocFailed ){ + goto trigger_cleanup; + } pTab = sqlite3SrcListLookup(pParse, pTableName); if( pName2->n==0 && pTab && pTab->pSchema==db->aDb[1].pSchema ){ iDb = 1; } /* Ensure the table name matches database name and that the table exists */ - if( sqlite3ThreadData()->mallocFailed ) goto trigger_cleanup; + if( sqlite3ThreadDataReadOnly()->mallocFailed ) goto trigger_cleanup; assert( pTableName->nSrc==1 ); if( sqlite3FixInit(&sFix, pParse, iDb, "trigger", pName) && sqlite3FixSrcList(&sFix, pTableName) ){ @@ -255,7 +257,7 @@ void sqlite3FinishTrigger( pDel = sqlite3HashInsert(&db->aDb[iDb].pSchema->trigHash, pTrig->name, strlen(pTrig->name)+1, pTrig); if( pDel ){ - assert( sqlite3ThreadData()->mallocFailed && pDel==pTrig ); + assert( sqlite3ThreadDataReadOnly()->mallocFailed && pDel==pTrig ); goto triggerfinish_cleanup; } n = strlen(pTrig->table) + 1; @@ -439,7 +441,7 @@ void sqlite3DropTrigger(Parse *pParse, SrcList *pName){ int nName; sqlite3 *db = pParse->db; - if( sqlite3ThreadData()->mallocFailed ) goto drop_trigger_cleanup; + if( sqlite3ThreadDataReadOnly()->mallocFailed ) goto drop_trigger_cleanup; if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ goto drop_trigger_cleanup; } |