summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Samir <[email protected]>2025-05-17 13:27:55 +0300
committerAhmad Samir <[email protected]>2025-06-04 02:13:06 +0300
commite67c4c986ffaeb98c1ccb52b689e7a8b37eb6672 (patch)
treeef67da0e069a32d23850267fdc3d939300847c72
parenta639807a8f86fc8203baaac5d731676bef79382e (diff)
QLogging: use std::unique_ptr instead of QScopedPointerHEADdev
Task-number: QTBUG-132213 Change-Id: I6c5e72108e4ed79e645b8dbd9b2103e13e4849d0 Reviewed-by: Thiago Macieira <[email protected]>
-rw-r--r--src/corelib/global/qlogging.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp
index 2fd2a52a88b..3637bd72c91 100644
--- a/src/corelib/global/qlogging.cpp
+++ b/src/corelib/global/qlogging.cpp
@@ -1492,11 +1492,12 @@ backtraceFramesForLogMessage(int frameCount,
else
return std::move(function).toUtf8(); // -> QByteArray
}();
- QScopedPointer<char, QScopedPointerPodDeleter> demangled;
- demangled.reset(abi::__cxa_demangle(fn, nullptr, nullptr, nullptr));
+ auto cleanup = [](auto *p) { free(p); };
+ using Ptr = std::unique_ptr<char, decltype(cleanup)>;
+ auto demangled = Ptr(abi::__cxa_demangle(fn, nullptr, nullptr, nullptr), cleanup);
if (demangled)
- return QString::fromUtf8(qCleanupFuncinfo(demangled.data()));
+ return QString::fromUtf8(qCleanupFuncinfo(demangled.get()));
else
return QString::fromUtf8(fn); // restore
};
@@ -1537,8 +1538,10 @@ backtraceFramesForLogMessage(int frameCount,
static const QRegularExpression rx(QStringLiteral("^(?:[^(]*/)?([^(/]+)\\(([^+]*)(?:[\\+[a-f0-9x]*)?\\) \\[[a-f0-9x]*\\]$"));
auto decodeFrame = [&](void *&addr) -> DecodedFrame {
- QScopedPointer<char*, QScopedPointerPodDeleter> strings(backtrace_symbols(&addr, 1));
- QString trace = QString::fromUtf8(strings.data()[0]);
+ auto cleanup = [](auto *p) { free(p); };
+ auto strings =
+ std::unique_ptr<char *, decltype(cleanup)>(backtrace_symbols(&addr, 1), cleanup);
+ QString trace = QString::fromUtf8(strings.get()[0]);
QRegularExpressionMatch m = rx.match(trace);
if (!m.hasMatch())
return {};