mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 11:00:48 +03:00
Work around multiple destructor calls after consteval construction in full expression
I have no idea, if this is our fault or not, but Jason traced it back to the consteval on the {fmt} format string constructor. Specifically when a consteval constructor call happens in the statement, the destructor call is moved to the end of the block. Inside the switch statement that means, the destructor is called multiple times, which corrupts the use count and crashes Nheko because of a double free. I am assuming this is a bug in clang, but this will need to be investigated more. fixes #1292
This commit is contained in:
parent
b4c0581948
commit
4c34f4bfee
1 changed files with 5 additions and 5 deletions
|
@ -45,19 +45,19 @@ qmlMessageHandler(QtMsgType type, const QMessageLogContext &context, const QStri
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case QtDebugMsg:
|
case QtDebugMsg:
|
||||||
nhlog::qml()->debug("{} ({}:{}, {})", localMsg, file, context.line, function);
|
qml_logger->debug("{} ({}:{}, {})", localMsg, file, context.line, function);
|
||||||
break;
|
break;
|
||||||
case QtInfoMsg:
|
case QtInfoMsg:
|
||||||
nhlog::qml()->info("{} ({}:{}, {})", localMsg, file, context.line, function);
|
qml_logger->info("{} ({}:{}, {})", localMsg, file, context.line, function);
|
||||||
break;
|
break;
|
||||||
case QtWarningMsg:
|
case QtWarningMsg:
|
||||||
nhlog::qml()->warn("{} ({}:{}, {})", localMsg, file, context.line, function);
|
qml_logger->warn("{} ({}:{}, {})", localMsg, file, context.line, function);
|
||||||
break;
|
break;
|
||||||
case QtCriticalMsg:
|
case QtCriticalMsg:
|
||||||
nhlog::qml()->critical("{} ({}:{}, {})", localMsg, file, context.line, function);
|
qml_logger->critical("{} ({}:{}, {})", localMsg, file, context.line, function);
|
||||||
break;
|
break;
|
||||||
case QtFatalMsg:
|
case QtFatalMsg:
|
||||||
nhlog::qml()->critical("{} ({}:{}, {})", localMsg, file, context.line, function);
|
qml_logger->critical("{} ({}:{}, {})", localMsg, file, context.line, function);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue