Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
converters/wkhtmltopdf: Fix build with gcc10
The patch is accepted from Debian: https://salsa.debian.org/qt-kde-team/qt/qt4-x11/commit/0d4a3dd61ccb156dee556c214dbe91c04d44a717 Still keep it DEPRECATED and see how it builds on 13.X series. PR: 269313 Reported by: r.quakkelaar@quaras.nl Approved by: portmgr (just-fix-it)
- Loading branch information
Showing
5 changed files
with
43 additions
and
61 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 0 additions & 11 deletions
11
converters/wkhtmltopdf/files/patch-mkspecs_common_gcc-base.conf
This file was deleted.
Oops, something went wrong.
4 changes: 2 additions & 2 deletions
4
...rs/wkhtmltopdf/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Platform.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
40 changes: 40 additions & 0 deletions
40
converters/wkhtmltopdf/files/patch-src_corelib_global_qglobal.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- src/corelib/global/qglobal.h.orig 2023-11-20 11:36:42 UTC | ||
+++ src/corelib/global/qglobal.h | ||
@@ -2482,22 +2482,32 @@ typedef uint Flags; | ||
|
||
#endif /* Q_NO_TYPESAFE_FLAGS */ | ||
|
||
-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT) | ||
+#if (defined(Q_CC_GNU) && !defined(Q_CC_RVCT)) | ||
/* make use of typeof-extension */ | ||
template <typename T> | ||
class QForeachContainer { | ||
public: | ||
- inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { } | ||
+ inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { } | ||
const T c; | ||
int brk; | ||
typename T::const_iterator i, e; | ||
+ int control; | ||
}; | ||
|
||
+// Explanation of the control word: | ||
+// - it's initialized to 1 | ||
+// - that means both the inner and outer loops start | ||
+// - if there were no breaks, at the end of the inner loop, it's set to 0, which | ||
+// causes it to exit (the inner loop is run exactly once) | ||
+// - at the end of the outer loop, it's inverted, so it becomes 1 again, allowing | ||
+// the outer loop to continue executing | ||
+// - if there was a break inside the inner loop, it will exit with control still | ||
+// set to 1; in that case, the outer loop will invert it to 0 and will exit too | ||
#define Q_FOREACH(variable, container) \ | ||
for (QForeachContainer<__typeof__(container)> _container_(container); \ | ||
- !_container_.brk && _container_.i != _container_.e; \ | ||
- __extension__ ({ ++_container_.brk; ++_container_.i; })) \ | ||
- for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;})) | ||
+ _container_.control && _container_.i != _container_.e; \ | ||
+ ++_container_.i, _container_.control ^= 1) \ | ||
+ for (variable = *_container_.i; _container_.control; _container_.control = 0) | ||
|
||
#else | ||
|