summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers/firefox/fix-ff71-lto.patch
blob: f48cad9e67a21d157085bead69f9f8fa216d09ba (plain) (blame)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Original Patch: https://bugzilla.mozilla.org/show_bug.cgi?id=1601707#c6

Also fixes the issues with dom localstorage.

--- a/dom/indexedDB/ActorsParent.cpp
+++ b/dom/indexedDB/ActorsParent.cpp
@@ -24311,11 +24311,11 @@ nsresult ObjectStoreAddOrPutRequestOp::DoDatabaseWork(
   // if we allow overwrite or not. By not allowing overwrite we raise
   // detectable errors rather than corrupting data.
   DatabaseConnection::CachedStatement stmt;
-  const auto& optReplaceDirective = (!mOverwrite || keyUnset)
-                                        ? NS_LITERAL_CSTRING("")
-                                        : NS_LITERAL_CSTRING("OR REPLACE ");
   rv = aConnection->GetCachedStatement(
-      NS_LITERAL_CSTRING("INSERT ") + optReplaceDirective +
+      NS_LITERAL_CSTRING("INSERT ") +
+	  ((!mOverwrite || keyUnset)
+           ? NS_LITERAL_CSTRING("")
+           : NS_LITERAL_CSTRING("OR REPLACE ")) +
           NS_LITERAL_CSTRING("INTO object_data "
                              "(object_store_id, key, file_ids, data) "
                              "VALUES (:") +
@@ -26076,9 +26076,6 @@ nsresult Cursor::OpenOp::DoIndexDatabaseWork(DatabaseConnection* aConnection) {
 
   const bool usingKeyRange = mOptionalKeyRange.isSome();
 
-  const auto& indexTable = mCursor->mUniqueIndex
-                               ? NS_LITERAL_CSTRING("unique_index_data")
-                               : NS_LITERAL_CSTRING("index_data");
 
   NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column");
 
@@ -26099,7 +26096,9 @@ nsresult Cursor::OpenOp::DoIndexDatabaseWork(DatabaseConnection* aConnection) {
                                  "object_data.file_ids, "
                                  "object_data.data "
                                  "FROM ") +
-                             indexTable +
+                             (mCursor->mUniqueIndex
+                                 ? NS_LITERAL_CSTRING("unique_index_data")
+                                 : NS_LITERAL_CSTRING("index_data")) +
                              NS_LITERAL_CSTRING(
                                  " AS index_table "
                                  "JOIN object_data "
@@ -26198,9 +26197,6 @@ nsresult Cursor::OpenOp::DoIndexKeyDatabaseWork(
 
   const bool usingKeyRange = mOptionalKeyRange.isSome();
 
-  const auto& table = mCursor->mUniqueIndex
-                          ? NS_LITERAL_CSTRING("unique_index_data")
-                          : NS_LITERAL_CSTRING("index_data");
 
   NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column");
 
@@ -26218,7 +26214,10 @@ nsresult Cursor::OpenOp::DoIndexKeyDatabaseWork(
                              NS_LITERAL_CSTRING(
                                  "object_data_key "
                                  " FROM ") +
-                             table + NS_LITERAL_CSTRING(" WHERE index_id = :") +
+                             (mCursor->mUniqueIndex
+                                 ? NS_LITERAL_CSTRING("unique_index_data")
+                                 : NS_LITERAL_CSTRING("index_data")) +
+                             NS_LITERAL_CSTRING(" WHERE index_id = :") +
                              kStmtParamNameId;
 
   const auto keyRangeClause =
diff --git a/dom/localstorage/ActorsParent.cpp b/dom/localstorage/ActorsParent.cpp
index 9c46c20670..642cef1701 100644
--- a/dom/localstorage/ActorsParent.cpp
+++ b/dom/localstorage/ActorsParent.cpp
@@ -6959,13 +6959,10 @@ nsresult PrepareDatastoreOp::Start() {
   MOZ_ASSERT(!QuotaClient::IsShuttingDownOnBackgroundThread());
   MOZ_ASSERT(MayProceed());
 
-  const LSRequestCommonParams& commonParams =
-      mForPreload
-          ? mParams.get_LSRequestPreloadDatastoreParams().commonParams()
-          : mParams.get_LSRequestPrepareDatastoreParams().commonParams();
-
   const PrincipalInfo& storagePrincipalInfo =
-      commonParams.storagePrincipalInfo();
+      mForPreload
+          ? mParams.get_LSRequestPreloadDatastoreParams().commonParams().storagePrincipalInfo()
+          : mParams.get_LSRequestPrepareDatastoreParams().commonParams().storagePrincipalInfo();
 
   if (storagePrincipalInfo.type() == PrincipalInfo::TSystemPrincipalInfo) {
     QuotaManager::GetInfoForChrome(&mSuffix, &mGroup, &mOrigin);
@@ -6996,10 +6993,9 @@ nsresult PrepareDatastoreOp::CheckExistingOperations() {
     return NS_ERROR_FAILURE;
   }
 
-  const LSRequestCommonParams& commonParams =
-      mForPreload
-          ? mParams.get_LSRequestPreloadDatastoreParams().commonParams()
-          : mParams.get_LSRequestPrepareDatastoreParams().commonParams();
+  const LSRequestCommonParams& preloadCommonParams = mParams.get_LSRequestPreloadDatastoreParams().commonParams();
+  const LSRequestCommonParams& prepareCommonParams = mParams.get_LSRequestPrepareDatastoreParams().commonParams();
+  const LSRequestCommonParams& commonParams = mForPreload ? preloadCommonParams : prepareCommonParams;
 
   const PrincipalInfo& storagePrincipalInfo =
       commonParams.storagePrincipalInfo();