diff options
| author | Tim Blechmann <tim@klingt.org> | 2024-04-24 12:55:58 +0800 |
|---|---|---|
| committer | Tim Blechmann <tim@klingt.org> | 2024-04-30 13:37:53 +0000 |
| commit | 88988c900d9bca3967816f8a3d0e30bf4178ed0f (patch) | |
| tree | 9da3911569bb77fccb5f626021c3e7310afb622b /src/qmlcompiler/qqmljsoptimizations.cpp | |
| parent | 4949768067cfc8a16c0cef958928e94147842bb8 (diff) | |
QmlCompiler: fix unity builds
`deduplicate` was declared in two translation units, which is breaking
unity builds. Moving the definition to QQmlJSUtils fixes the builds and
makes the code more robust towards potential ODR violations in case the
function is ever changed in one TU, but not in the other.
Change-Id: I57627399d50d284ce031af245fd4ad5aa1ab6405
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qmlcompiler/qqmljsoptimizations.cpp')
| -rw-r--r-- | src/qmlcompiler/qqmljsoptimizations.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/qmlcompiler/qqmljsoptimizations.cpp b/src/qmlcompiler/qqmljsoptimizations.cpp index ecef117c53..1d0a7cf415 100644 --- a/src/qmlcompiler/qqmljsoptimizations.cpp +++ b/src/qmlcompiler/qqmljsoptimizations.cpp @@ -3,6 +3,7 @@ #include "qqmljsoptimizations_p.h" #include "qqmljsbasicblocks_p.h" +#include "qqmljsutils_p.h" QT_BEGIN_NAMESPACE @@ -28,14 +29,6 @@ struct PendingBlock bool registerActive = false; }; -template <typename Container> -void deduplicate(Container &container) -{ - std::sort(container.begin(), container.end()); - auto erase = std::unique(container.begin(), container.end()); - container.erase(erase, container.end()); -} - template<typename ContainerA, typename ContainerB> static bool containsAny(const ContainerA &container, const ContainerB &elements) { @@ -529,8 +522,8 @@ void QQmlJSOptimizations::populateBasicBlocks() } } - deduplicate(block.readTypes); - deduplicate(block.readRegisters); + QQmlJSUtils::deduplicate(block.readTypes); + QQmlJSUtils::deduplicate(block.readRegisters); } } |
