diff options
author | drh <drh@noemail.net> | 2013-08-08 14:38:45 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2013-08-08 14:38:45 +0000 |
commit | ab80be99e3c96e03982056e33853ec52a34222eb (patch) | |
tree | 2e495c6a6e28349f81558f4287f7e1cda60fa0f3 /src | |
parent | 869c0409e3a7a54341cb408533b3c668b9df916d (diff) | |
download | sqlite-ab80be99e3c96e03982056e33853ec52a34222eb.tar.gz sqlite-ab80be99e3c96e03982056e33853ec52a34222eb.zip |
If the SQLITE_EXTRA_INIT function is defined, make sure it is called only
once by the effective sqlite3_initialize() call.
FossilOrigin-Name: e2b597cafe7c8a8313b051d6a302fed54f235727
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c index 9e8a6ed06..217221d23 100644 --- a/src/main.c +++ b/src/main.c @@ -117,6 +117,9 @@ char *sqlite3_data_directory = 0; int sqlite3_initialize(void){ MUTEX_LOGIC( sqlite3_mutex *pMaster; ) /* The main static mutex */ int rc; /* Result code */ +#ifdef SQLITE_EXTRA_INIT + int bRunExtraInit = 0; /* Extra initialization needed */ +#endif #ifdef SQLITE_OMIT_WSD rc = sqlite3_wsd_init(4096, 24); @@ -214,6 +217,9 @@ int sqlite3_initialize(void){ sqlite3PCacheBufferSetup( sqlite3GlobalConfig.pPage, sqlite3GlobalConfig.szPage, sqlite3GlobalConfig.nPage); sqlite3GlobalConfig.isInit = 1; +#ifdef SQLITE_EXTRA_INIT + bRunExtraInit = 1; +#endif } sqlite3GlobalConfig.inProgress = 0; } @@ -254,7 +260,7 @@ int sqlite3_initialize(void){ ** compile-time option. */ #ifdef SQLITE_EXTRA_INIT - if( rc==SQLITE_OK && sqlite3GlobalConfig.isInit ){ + if( bRunExtraInit ){ int SQLITE_EXTRA_INIT(const char*); rc = SQLITE_EXTRA_INIT(0); } |