Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1791)

Unified Diff: third_party/sqlite/patches/0005-Modify-default-VFS-to-support-WebDatabase.patch

Issue 1310533005: [sqlite] Annotate Chromium-specific exposed functions with SQLITE_API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 45d6b25757c678de77d81cb8717a1d37384c7746..81343dad6836b1a9d2ad8631752f40ba9048372d 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 67024286d2719aec049605896ef0afec6932f184 Mon Sep 17 00:00:00 2001
+From 4b957c2c198a53498fe18ad9668e2817ace98b1e Mon Sep 17 00:00:00 2001
From: dumi <dumi@chromium.org>
Date: Mon, 20 Jul 2009 23:40:51 +0000
-Subject: [PATCH 05/16] Modify default VFS to support WebDatabase.
+Subject: [PATCH 05/11] 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,12 +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 | 95 ++++++++++++++++++++++++++++++------
- third_party/sqlite/src/src/os_win.c | 7 +++
- 2 files changed, 86 insertions(+), 16 deletions(-)
+ 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(-)
diff --git a/third_party/sqlite/src/src/os_unix.c b/third_party/sqlite/src/src/os_unix.c
-index a9344ee..1624f6a 100644
+index a9344ee..75b71dc 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){
@@ -38,16 +39,18 @@ index a9344ee..1624f6a 100644
return pFile->pInode!=0 &&
(osStat(pFile->zPath, &buf)!=0 || buf.st_ino!=pFile->pInode->fileId.ino);
#endif
-@@ -5615,6 +5621,73 @@ static int findCreateFileMode(
+@@ -5615,6 +5621,78 @@ static int findCreateFileMode(
}
/*
+** Initializes a unixFile structure with zeros.
+*/
++CHROMIUM_SQLITE_API
+void chromium_sqlite3_initialize_unix_sqlite3_file(sqlite3_file* file) {
+ memset(file, 0, sizeof(unixFile));
+}
+
++CHROMIUM_SQLITE_API
+int chromium_sqlite3_fill_in_unix_sqlite3_file(sqlite3_vfs* vfs,
+ int fd,
+ int dirfd,
@@ -66,6 +69,7 @@ index a9344ee..1624f6a 100644
+** 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,
@@ -90,6 +94,7 @@ index a9344ee..1624f6a 100644
+/*
+** Marks 'fd' as the unused file descriptor for 'pFile'.
+*/
++CHROMIUM_SQLITE_API
+void chromium_sqlite3_update_reusable_file_handle(sqlite3_file* file,
+ int fd,
+ int flags) {
@@ -103,6 +108,7 @@ index a9344ee..1624f6a 100644
+/*
+** Destroys pFile's field that keeps track of the unused file descriptor.
+*/
++CHROMIUM_SQLITE_API
+void chromium_sqlite3_destroy_reusable_file_handle(sqlite3_file* file) {
+ unixFile* unixSQLite3File = (unixFile*)file;
+ sqlite3_free(unixSQLite3File->pUnused);
@@ -112,7 +118,7 @@ index a9344ee..1624f6a 100644
** Open the file zPath.
**
** Previously, the SQLite OS layer used three functions in place of this
-@@ -5715,20 +5788,13 @@ static int unixOpen(
+@@ -5715,20 +5793,13 @@ static int unixOpen(
sqlite3_randomness(0,0);
}
@@ -137,7 +143,7 @@ index a9344ee..1624f6a 100644
/* Database filenames are double-zero terminated if they are not
** URIs with parameters. Hence, they can always be passed into
-@@ -5798,10 +5864,7 @@ static int unixOpen(
+@@ -5798,10 +5869,7 @@ static int unixOpen(
*pOutFlags = flags;
}
@@ -149,7 +155,7 @@ index a9344ee..1624f6a 100644
if( isDelete ){
#if OS_VXWORKS
-@@ -5893,7 +5956,7 @@ static int unixOpen(
+@@ -5893,7 +5961,7 @@ static int unixOpen(
open_finished:
if( rc!=SQLITE_OK ){
@@ -159,13 +165,14 @@ index a9344ee..1624f6a 100644
return rc;
}
diff --git a/third_party/sqlite/src/src/os_win.c b/third_party/sqlite/src/src/os_win.c
-index 8ca2107..5b0a296 100644
+index 8ca2107..9320bfc 100644
--- a/third_party/sqlite/src/src/os_win.c
+++ b/third_party/sqlite/src/src/os_win.c
-@@ -5546,4 +5546,11 @@ int sqlite3_os_end(void){
+@@ -5546,4 +5546,12 @@ int sqlite3_os_end(void){
return SQLITE_OK;
}
++CHROMIUM_SQLITE_API
+void chromium_sqlite3_initialize_win_sqlite3_file(sqlite3_file* file, HANDLE handle) {
+ winFile* winSQLite3File = (winFile*)file;
+ memset(file, 0, sizeof(*file));
@@ -174,6 +181,53 @@ index 8ca2107..5b0a296 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
+--- 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 *);
+
+
+
++/* Begin WebDatabase patch for Chromium */
++/* Expose some SQLite internals for the WebDatabase vfs.
++** DO NOT EXTEND THE USE OF THIS.
++*/
++#ifndef CHROMIUM_SQLITE_API
++#define CHROMIUM_SQLITE_API SQLITE_API
++#endif
++#if defined(CHROMIUM_SQLITE_INTERNALS)
++#ifdef _WIN32
++CHROMIUM_SQLITE_API
++void chromium_sqlite3_initialize_win_sqlite3_file(sqlite3_file* file, HANDLE handle);
++#else /* _WIN32 */
++CHROMIUM_SQLITE_API
++void chromium_sqlite3_initialize_unix_sqlite3_file(sqlite3_file* file);
++CHROMIUM_SQLITE_API
++int chromium_sqlite3_fill_in_unix_sqlite3_file(sqlite3_vfs* vfs,
++ int fd,
++ int dirfd,
++ sqlite3_file* file,
++ 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);
++CHROMIUM_SQLITE_API
++void chromium_sqlite3_destroy_reusable_file_handle(sqlite3_file* file);
++#endif /* _WIN32 */
++#endif /* CHROMIUM_SQLITE_INTERNALS */
++/* End WebDatabase patch for Chromium */
++
+ /*
+ ** Undo the hack that converts floating point types to integer for
+ ** builds on processors without floating point support.
--
-2.2.1
+2.4.5

Powered by Google App Engine
This is Rietveld 408576698