diff options
author | Jory Pratt <anarchy@gentoo.org> | 2019-12-09 17:51:50 -0600 |
---|---|---|
committer | Jory Pratt <anarchy@gentoo.org> | 2019-12-09 17:52:11 -0600 |
commit | c40cc87ed9378492d84a2c6c5e45fa3d399ba7a2 (patch) | |
tree | 30919764f02b4522bae8989b485f1f7d5381679c /www-client/firefox/files | |
parent | profiles/package.mask: mask dev-libs/cityhash and dev-db/hyperdex (diff) | |
download | gentoo-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.patch | 114 |
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 = |