| Index: third_party/sqlite/amalgamation/sqlite3.c
|
| diff --git a/third_party/sqlite/amalgamation/sqlite3.c b/third_party/sqlite/amalgamation/sqlite3.c
|
| index 80d4c2232eaa10111ff79ad79f7952b11e74e106..ac1bb39298160340e4806f33d5ff0b73e2b1de66 100644
|
| --- a/third_party/sqlite/amalgamation/sqlite3.c
|
| +++ b/third_party/sqlite/amalgamation/sqlite3.c
|
| @@ -7575,11 +7575,6 @@ int chromium_sqlite3_fill_in_unix_sqlite3_file(sqlite3_vfs* vfs,
|
| const char* fileName,
|
| int noLock);
|
| CHROMIUM_SQLITE_API
|
| -int chromium_sqlite3_get_reusable_file_handle(sqlite3_file* file,
|
| - const char* fileName,
|
| - int flags,
|
| - int* fd);
|
| -CHROMIUM_SQLITE_API
|
| void chromium_sqlite3_update_reusable_file_handle(sqlite3_file* file,
|
| int fd,
|
| int flags);
|
| @@ -30513,36 +30508,6 @@ int chromium_sqlite3_fill_in_unix_sqlite3_file(sqlite3_vfs* vfs,
|
| }
|
|
|
| /*
|
| -** Search for an unused file descriptor that was opened on the database file.
|
| -** If a suitable file descriptor if found, then it is stored in *fd; otherwise,
|
| -** *fd is not modified.
|
| -**
|
| -** If a reusable file descriptor is not found, and a new UnixUnusedFd cannot
|
| -** be allocated, SQLITE_NOMEM is returned. Otherwise, SQLITE_OK is returned.
|
| -*/
|
| -CHROMIUM_SQLITE_API
|
| -int chromium_sqlite3_get_reusable_file_handle(sqlite3_file* file,
|
| - const char* fileName,
|
| - int flags,
|
| - int* fd) {
|
| - unixFile* unixSQLite3File = (unixFile*)file;
|
| - int fileType = flags & 0xFFFFFF00;
|
| - if (fileType == SQLITE_OPEN_MAIN_DB) {
|
| - UnixUnusedFd *unusedFd = findReusableFd(fileName, flags);
|
| - if (unusedFd) {
|
| - *fd = unusedFd->fd;
|
| - } else {
|
| - unusedFd = sqlite3_malloc(sizeof(*unusedFd));
|
| - if (!unusedFd) {
|
| - return SQLITE_NOMEM;
|
| - }
|
| - }
|
| - unixSQLite3File->pUnused = unusedFd;
|
| - }
|
| - return SQLITE_OK;
|
| -}
|
| -
|
| -/*
|
| ** Marks 'fd' as the unused file descriptor for 'pFile'.
|
| */
|
| CHROMIUM_SQLITE_API
|
| @@ -30669,10 +30634,17 @@ static int unixOpen(
|
| chromium_sqlite3_initialize_unix_sqlite3_file(pFile);
|
|
|
| if( eType==SQLITE_OPEN_MAIN_DB ){
|
| - rc = chromium_sqlite3_get_reusable_file_handle(pFile, zName, flags, &fd);
|
| - if( rc!=SQLITE_OK ){
|
| - return rc;
|
| + UnixUnusedFd *pUnused;
|
| + pUnused = findReusableFd(zName, flags);
|
| + if( pUnused ){
|
| + fd = pUnused->fd;
|
| + }else{
|
| + pUnused = sqlite3_malloc(sizeof(*pUnused));
|
| + if( !pUnused ){
|
| + return SQLITE_NOMEM;
|
| + }
|
| }
|
| + p->pUnused = pUnused;
|
|
|
| /* Database filenames are double-zero terminated if they are not
|
| ** URIs with parameters. Hence, they can always be passed into
|
|
|