QLogging: use std::unique_ptr instead of QScopedPointer
Task-number: QTBUG-132213 Change-Id: I6c5e72108e4ed79e645b8dbd9b2103e13e4849d0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
a639807a8f
commit
e67c4c986f
@ -1492,11 +1492,12 @@ backtraceFramesForLogMessage(int frameCount,
|
|||||||
else
|
else
|
||||||
return std::move(function).toUtf8(); // -> QByteArray
|
return std::move(function).toUtf8(); // -> QByteArray
|
||||||
}();
|
}();
|
||||||
QScopedPointer<char, QScopedPointerPodDeleter> demangled;
|
auto cleanup = [](auto *p) { free(p); };
|
||||||
demangled.reset(abi::__cxa_demangle(fn, nullptr, nullptr, nullptr));
|
using Ptr = std::unique_ptr<char, decltype(cleanup)>;
|
||||||
|
auto demangled = Ptr(abi::__cxa_demangle(fn, nullptr, nullptr, nullptr), cleanup);
|
||||||
|
|
||||||
if (demangled)
|
if (demangled)
|
||||||
return QString::fromUtf8(qCleanupFuncinfo(demangled.data()));
|
return QString::fromUtf8(qCleanupFuncinfo(demangled.get()));
|
||||||
else
|
else
|
||||||
return QString::fromUtf8(fn); // restore
|
return QString::fromUtf8(fn); // restore
|
||||||
};
|
};
|
||||||
@ -1537,8 +1538,10 @@ backtraceFramesForLogMessage(int frameCount,
|
|||||||
static const QRegularExpression rx(QStringLiteral("^(?:[^(]*/)?([^(/]+)\\(([^+]*)(?:[\\+[a-f0-9x]*)?\\) \\[[a-f0-9x]*\\]$"));
|
static const QRegularExpression rx(QStringLiteral("^(?:[^(]*/)?([^(/]+)\\(([^+]*)(?:[\\+[a-f0-9x]*)?\\) \\[[a-f0-9x]*\\]$"));
|
||||||
|
|
||||||
auto decodeFrame = [&](void *&addr) -> DecodedFrame {
|
auto decodeFrame = [&](void *&addr) -> DecodedFrame {
|
||||||
QScopedPointer<char*, QScopedPointerPodDeleter> strings(backtrace_symbols(&addr, 1));
|
auto cleanup = [](auto *p) { free(p); };
|
||||||
QString trace = QString::fromUtf8(strings.data()[0]);
|
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);
|
QRegularExpressionMatch m = rx.match(trace);
|
||||||
if (!m.hasMatch())
|
if (!m.hasMatch())
|
||||||
return {};
|
return {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user