Index: third_party/sqlite/patches/0005-Modify-default-VFS-to-support-WebDatabase.patch |
diff --git a/third_party/sqlite/patches/0005-Modify-default-VFS-to-support-WebDatabase.patch b/third_party/sqlite/patches/0005-Modify-default-VFS-to-support-WebDatabase.patch |
index 81343dad6836b1a9d2ad8631752f40ba9048372d..6cff9b30d03a2d783522ad2519711b9f6a479d45 100644 |
--- a/third_party/sqlite/patches/0005-Modify-default-VFS-to-support-WebDatabase.patch |
+++ b/third_party/sqlite/patches/0005-Modify-default-VFS-to-support-WebDatabase.patch |
@@ -1,7 +1,7 @@ |
-From 4b957c2c198a53498fe18ad9668e2817ace98b1e Mon Sep 17 00:00:00 2001 |
+From e646ccd23c9eaa86e4e6b0f5ee60867010407346 Mon Sep 17 00:00:00 2001 |
From: dumi <dumi@chromium.org> |
Date: Mon, 20 Jul 2009 23:40:51 +0000 |
-Subject: [PATCH 05/11] Modify default VFS to support WebDatabase. |
+Subject: [PATCH 05/12] Modify default VFS to support WebDatabase. |
The renderer WebDatabase implementation needs to broker certain requests |
to the browser. This modifies SQLite to allow monkey-patching the VFS |
@@ -17,13 +17,13 @@ https://codereview.chromium.org/384075 |
https://codereview.chromium.org/377039 |
[Possibly not a complete list.] |
--- |
- third_party/sqlite/src/src/os_unix.c | 100 +++++++++++++++++++++++++++------ |
- third_party/sqlite/src/src/os_win.c | 8 +++ |
- third_party/sqlite/src/src/sqlite.h.in | 36 ++++++++++++ |
- 3 files changed, 128 insertions(+), 16 deletions(-) |
+ third_party/sqlite/src/src/os_unix.c | 57 ++++++++++++++++++++++++++++++---- |
+ third_party/sqlite/src/src/os_win.c | 8 +++++ |
+ third_party/sqlite/src/src/sqlite.h.in | 31 ++++++++++++++++++ |
+ 3 files changed, 90 insertions(+), 6 deletions(-) |
diff --git a/third_party/sqlite/src/src/os_unix.c b/third_party/sqlite/src/src/os_unix.c |
-index a9344ee..75b71dc 100644 |
+index a9344ee..c6e1b6c 100644 |
--- a/third_party/sqlite/src/src/os_unix.c |
+++ b/third_party/sqlite/src/src/os_unix.c |
@@ -1321,6 +1321,12 @@ static int fileHasMoved(unixFile *pFile){ |
@@ -39,7 +39,7 @@ index a9344ee..75b71dc 100644 |
return pFile->pInode!=0 && |
(osStat(pFile->zPath, &buf)!=0 || buf.st_ino!=pFile->pInode->fileId.ino); |
#endif |
-@@ -5615,6 +5621,78 @@ static int findCreateFileMode( |
+@@ -5615,6 +5621,48 @@ static int findCreateFileMode( |
} |
/* |
@@ -62,36 +62,6 @@ index a9344ee..75b71dc 100644 |
+} |
+ |
+/* |
-+** 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 |
@@ -118,7 +88,7 @@ index a9344ee..75b71dc 100644 |
** Open the file zPath. |
** |
** Previously, the SQLite OS layer used three functions in place of this |
-@@ -5715,20 +5793,13 @@ static int unixOpen( |
+@@ -5715,7 +5763,7 @@ static int unixOpen( |
sqlite3_randomness(0,0); |
} |
@@ -126,24 +96,8 @@ index a9344ee..75b71dc 100644 |
+ chromium_sqlite3_initialize_unix_sqlite3_file(pFile); |
if( eType==SQLITE_OPEN_MAIN_DB ){ |
-- UnixUnusedFd *pUnused; |
-- pUnused = findReusableFd(zName, flags); |
-- if( pUnused ){ |
-- fd = pUnused->fd; |
-- }else{ |
-- pUnused = sqlite3_malloc(sizeof(*pUnused)); |
-- if( !pUnused ){ |
-- return SQLITE_NOMEM; |
-- } |
-+ rc = chromium_sqlite3_get_reusable_file_handle(pFile, zName, flags, &fd); |
-+ if( rc!=SQLITE_OK ){ |
-+ return rc; |
- } |
-- p->pUnused = pUnused; |
- |
- /* Database filenames are double-zero terminated if they are not |
- ** URIs with parameters. Hence, they can always be passed into |
-@@ -5798,10 +5869,7 @@ static int unixOpen( |
+ UnixUnusedFd *pUnused; |
+@@ -5798,10 +5846,7 @@ static int unixOpen( |
*pOutFlags = flags; |
} |
@@ -155,7 +109,7 @@ index a9344ee..75b71dc 100644 |
if( isDelete ){ |
#if OS_VXWORKS |
-@@ -5893,7 +5961,7 @@ static int unixOpen( |
+@@ -5893,7 +5938,7 @@ static int unixOpen( |
open_finished: |
if( rc!=SQLITE_OK ){ |
@@ -182,10 +136,10 @@ index 8ca2107..9320bfc 100644 |
+ |
#endif /* SQLITE_OS_WIN */ |
diff --git a/third_party/sqlite/src/src/sqlite.h.in b/third_party/sqlite/src/src/sqlite.h.in |
-index f1d4e40..36aa999 100644 |
+index f1d4e40..00e4771 100644 |
--- a/third_party/sqlite/src/src/sqlite.h.in |
+++ b/third_party/sqlite/src/src/sqlite.h.in |
-@@ -7408,6 +7408,42 @@ int sqlite3_vtab_on_conflict(sqlite3 *); |
+@@ -7408,6 +7408,37 @@ int sqlite3_vtab_on_conflict(sqlite3 *); |
@@ -211,11 +165,6 @@ index f1d4e40..36aa999 100644 |
+ 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); |
@@ -229,5 +178,5 @@ index f1d4e40..36aa999 100644 |
** Undo the hack that converts floating point types to integer for |
** builds on processors without floating point support. |
-- |
-2.4.5 |
+2.6.1 |