blob: 19928b9974e9445c0223c39ffe3aa905f743d11c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
From: Mike Hommey <glandium@debian.org>
Date: Mon, 5 Apr 2010 17:58:23 +0200
Subject: Don't error-out when run-time libsqlite is older than build-time
libsqlite
In Debian, we have shlibs to handle this.
---
storage/mozStorageService.cpp | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp
index d73a168..4a2eb64 100644
--- a/storage/mozStorageService.cpp
+++ b/storage/mozStorageService.cpp
@@ -167,6 +167,33 @@ already_AddRefed<Service> Service::getSingleton() {
return do_AddRef(gService);
}
+#if 0
+ // Ensure that we are using the same version of SQLite that we compiled with
+ // or newer. Our configure check ensures we are using a new enough version
+ // at compile time.
+ if (SQLITE_VERSION_NUMBER > ::sqlite3_libversion_number() ||
+ !::sqlite3_compileoption_used("SQLITE_SECURE_DELETE") ||
+ !::sqlite3_compileoption_used("SQLITE_THREADSAFE=1") ||
+ !::sqlite3_compileoption_used("SQLITE_ENABLE_FTS3") ||
+ !::sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY") ||
+ !::sqlite3_compileoption_used("SQLITE_ENABLE_DBSTAT_VTAB")) {
+ nsCOMPtr<nsIPromptService> ps(do_GetService(NS_PROMPTSERVICE_CONTRACTID));
+ if (ps) {
+ nsAutoString title, message;
+ title.AppendLiteral("SQLite Version Error");
+ message.AppendLiteral(
+ "The application has been updated, but the SQLite "
+ "library wasn't updated properly and the application "
+ "cannot run. Please try to launch the application again. "
+ "If that should still fail, please try reinstalling "
+ "it, or contact the support of where you got the "
+ "application from.");
+ (void)ps->Alert(nullptr, title.get(), message.get());
+ }
+ MOZ_CRASH("SQLite Version Error");
+ }
+#endif
+
// The first reference to the storage service must be obtained on the
// main thread.
NS_ENSURE_TRUE(NS_IsMainThread(), nullptr);
|