summaryrefslogtreecommitdiffstats
path: root/third_party/sqlite
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-28 08:52:50 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-28 08:52:50 +0000
commita665dd2efd9a98424bf461f492d58e81ab6127ed (patch)
tree16aca9cf230348b2c61d703001fdf522926d6ce7 /third_party/sqlite
parent83d7b4e943c80e388d2886636bb5fe1f8477ccb0 (diff)
downloadchromium_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.chromium15
-rw-r--r--third_party/sqlite/src/src/os_unix.c92
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;
}