summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJory Pratt <anarchy@gentoo.org>2019-12-09 17:51:50 -0600
committerJory Pratt <anarchy@gentoo.org>2019-12-09 17:52:11 -0600
commitc40cc87ed9378492d84a2c6c5e45fa3d399ba7a2 (patch)
tree30919764f02b4522bae8989b485f1f7d5381679c /www-client/firefox/files
parentprofiles/package.mask: mask dev-libs/cityhash and dev-db/hyperdex (diff)
downloadgentoo-c40cc87ed9378492d84a2c6c5e45fa3d399ba7a2.tar.gz
gentoo-c40cc87ed9378492d84a2c6c5e45fa3d399ba7a2.tar.bz2
gentoo-c40cc87ed9378492d84a2c6c5e45fa3d399ba7a2.zip
www-client/firefox: Fix segfault with gcc lto builds
Closes: https://bugs.gentoo.org/show_bug.cgi?id=701866 Package-Manager: Portage-2.3.81, Repoman-2.3.20 Signed-off-by: Jory Pratt <anarchy@gentoo.org>
Diffstat (limited to 'www-client/firefox/files')
-rw-r--r--www-client/firefox/files/mozilla-bug1601707-gcc-fixup.patch114
1 files changed, 114 insertions, 0 deletions
diff --git a/www-client/firefox/files/mozilla-bug1601707-gcc-fixup.patch b/www-client/firefox/files/mozilla-bug1601707-gcc-fixup.patch
new file mode 100644
index 000000000000..7002c6d70b70
--- /dev/null
+++ b/www-client/firefox/files/mozilla-bug1601707-gcc-fixup.patch
@@ -0,0 +1,114 @@
+diff -up firefox-71.0/dom/indexedDB/ActorsParent.cpp.gcc-workaround firefox-71.0/dom/indexedDB/ActorsParent.cpp
+--- firefox-71.0/dom/indexedDB/ActorsParent.cpp.gcc-workaround 2019-12-02 13:22:58.000000000 +0100
++++ firefox-71.0/dom/indexedDB/ActorsParent.cpp 2019-12-08 21:52:54.449199120 +0100
+@@ -24311,11 +24311,11 @@ nsresult ObjectStoreAddOrPutRequestOp::D
+ // 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 (:") +
+@@ -25869,11 +25869,8 @@ void Cursor::OpenOp::PrepareIndexKeyCond
+ }
+ }
+
+- const auto& comparisonChar =
+- isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<");
+-
+ mCursor->mContinueToQuery =
+- aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + comparisonChar +
++ aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) +
+ NS_LITERAL_CSTRING("= :") + kStmtParamNameCurrentKey;
+
+ switch (mCursor->mDirection) {
+@@ -25881,11 +25878,11 @@ void Cursor::OpenOp::PrepareIndexKeyCond
+ case IDBCursor::PREV:
+ mCursor->mContinueQuery =
+ aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") +
+- comparisonChar + NS_LITERAL_CSTRING("= :") +
++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING("= :") +
+ kStmtParamNameCurrentKey + NS_LITERAL_CSTRING(" AND ( sort_column ") +
+- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
+ NS_LITERAL_CSTRING(" OR ") + aObjectDataKeyPrefix +
+- NS_LITERAL_CSTRING("object_data_key ") + comparisonChar +
++ NS_LITERAL_CSTRING("object_data_key ") + (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) +
+ NS_LITERAL_CSTRING(" :") + kStmtParamNameObjectStorePosition +
+ NS_LITERAL_CSTRING(" ) ");
+
+@@ -25896,12 +25893,12 @@ void Cursor::OpenOp::PrepareIndexKeyCond
+ "(sort_column == :") +
+ kStmtParamNameCurrentKey + NS_LITERAL_CSTRING(" AND ") +
+ aObjectDataKeyPrefix + NS_LITERAL_CSTRING("object_data_key ") +
+- comparisonChar + NS_LITERAL_CSTRING("= :") +
++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING("= :") +
+ kStmtParamNameObjectStorePosition +
+ NS_LITERAL_CSTRING(
+ ") OR "
+ "sort_column ") +
+- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey +
+ NS_LITERAL_CSTRING(")");
+ break;
+
+@@ -25909,7 +25906,7 @@ void Cursor::OpenOp::PrepareIndexKeyCond
+ case IDBCursor::PREV_UNIQUE:
+ mCursor->mContinueQuery =
+ aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") +
+- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey;
++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey;
+ break;
+
+ default:
+@@ -26076,9 +26073,6 @@ nsresult Cursor::OpenOp::DoIndexDatabase
+
+ 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 +26093,9 @@ nsresult Cursor::OpenOp::DoIndexDatabase
+ "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 +26194,6 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab
+
+ 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 +26211,10 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab
+ 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 =