diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-28 08:52:50 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-28 08:52:50 +0000 |
commit | a665dd2efd9a98424bf461f492d58e81ab6127ed (patch) | |
tree | 16aca9cf230348b2c61d703001fdf522926d6ce7 /third_party/sqlite | |
parent | 83d7b4e943c80e388d2886636bb5fe1f8477ccb0 (diff) | |
download | chromium_src-a665dd2efd9a98424bf461f492d58e81ab6127ed.zip chromium_src-a665dd2efd9a98424bf461f492d58e81ab6127ed.tar.gz chromium_src-a665dd2efd9a98424bf461f492d58e81ab6127ed.tar.bz2 |
Remove our local modifications to sqlite's os_unix.c now that
http://trac.webkit.org/changeset/68310 has landed.
They are no longer necessary, and are not used.
This brings our sqlite copy a little closer to the upstream version
and is a part of an effort to allow compiling with the system-provided sqlite.
BUG=50769, 22208
TEST=none
Review URL: http://codereview.chromium.org/3390032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60761 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/sqlite')
-rw-r--r-- | third_party/sqlite/README.chromium | 15 | ||||
-rw-r--r-- | third_party/sqlite/src/src/os_unix.c | 92 |
2 files changed, 17 insertions, 90 deletions
diff --git a/third_party/sqlite/README.chromium b/third_party/sqlite/README.chromium index 45d0a8d..2ac7415 100644 --- a/third_party/sqlite/README.chromium +++ b/third_party/sqlite/README.chromium @@ -155,18 +155,3 @@ Changes from Chrome: - Added a new function chromium_sqlite3_initialize_win_sqlite3_file() at the end of os_win.c. It allows the Windows-specific Chromium VFS to reuse most of the win32 SQLite VFS. - - Added a new function - chromium_sqlite3_initialize_unix_sqlite3_file() and made - fillInUnixFile() non-static in os_unix.c. It allows the - Linux-specific Chromium VFS to reuse most of the unix SQLite VFS. - - Exposed three functions that deal with unused file descriptors in - os_unix.c, to allow Chromium's Posix VFS implementation in - WebKit/WebCore/platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp - to correctly implement the "unused file descriptors" logic in the - xDlOpen() method. The new functions are - chromium_sqlite3_get_reusable_file_handle(), - chromium_sqlite3_update_reusable_file_handle() and - chromium_sqlite3_destroy_reusable_file_handle(). Also, added the - chromium_sqlite3_fill_in_unix_sqlite3_file() function that calls - fillInUnixFile(), which will be made static again as soon as a - WebKit patch using the new function lands. diff --git a/third_party/sqlite/src/src/os_unix.c b/third_party/sqlite/src/src/os_unix.c index 3ebfa04..ef04a72 100644 --- a/third_party/sqlite/src/src/os_unix.c +++ b/third_party/sqlite/src/src/os_unix.c @@ -3215,7 +3215,6 @@ static int unixDeviceCharacteristics(sqlite3_file *NotUsed){ ********************** End sqlite3_file Methods ******************************* ******************************************************************************/ - /* ** This division contains definitions of sqlite3_io_methods objects that ** implement various file locking strategies. It also contains definitions @@ -3813,73 +3812,6 @@ static UnixUnusedFd *findReusableFd(const char *zPath, int flags){ } /* -** Initializes a unixFile structure with zeros. -*/ -void chromium_sqlite3_initialize_unix_sqlite3_file(sqlite3_file* file) { - memset(file, 0, sizeof(unixFile)); -} - -int chromium_sqlite3_fill_in_unix_sqlite3_file(sqlite3_vfs* vfs, - int fd, - int dirfd, - sqlite3_file* file, - const char* fileName, - int noLock, - int isDelete) { - return fillInUnixFile(vfs, fd, dirfd, file, fileName, noLock, isDelete); -} - -/* -** 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. -*/ -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'. -*/ -void chromium_sqlite3_update_reusable_file_handle(sqlite3_file* file, - int fd, - int flags) { - unixFile* unixSQLite3File = (unixFile*)file; - if (unixSQLite3File->pUnused) { - unixSQLite3File->pUnused->fd = fd; - unixSQLite3File->pUnused->flags = flags; - } -} - -/* -** Destroys pFile's field that keeps track of the unused file descriptor. -*/ -void chromium_sqlite3_destroy_reusable_file_handle(sqlite3_file* file) { - unixFile* unixSQLite3File = (unixFile*)file; - sqlite3_free(unixSQLite3File->pUnused); -} - -/* ** Open the file zPath. ** ** Previously, the SQLite OS layer used three functions in place of this @@ -3961,13 +3893,20 @@ static int unixOpen( || eType==SQLITE_OPEN_TRANSIENT_DB ); - chromium_sqlite3_initialize_unix_sqlite3_file(pFile); + memset(p, 0, sizeof(unixFile)); 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; }else if( !zName ){ /* If zName is NULL, the upper layer is requesting a temp file. */ assert(isDelete && !isOpenDirectory); @@ -4010,7 +3949,10 @@ static int unixOpen( *pOutFlags = flags; } - chromium_sqlite3_update_reusable_file_handle(pFile, fd, flags); + if( p->pUnused ){ + p->pUnused->fd = fd; + p->pUnused->flags = flags; + } if( isDelete ){ #if OS_VXWORKS @@ -4082,11 +4024,11 @@ static int unixOpen( } } #endif - + rc = fillInUnixFile(pVfs, fd, dirfd, pFile, zPath, noLock, isDelete); open_finished: if( rc!=SQLITE_OK ){ - chromium_sqlite3_destroy_reusable_file_handle(pFile); + sqlite3_free(p->pUnused); } return rc; } |