From 782710f23604b7437417540c2d44aec06c42f3ba Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 15 Sep 2020 13:52:06 +0200 Subject: dumpcpp: Check 64 bit registry keys for 64bit builds Add a check depending on pointer size. Pick-to: 5.15 Fixes: QTBUG-86666 Change-Id: I6bb39e94e677e9f9c72b15949e7b463e1f4776d2 Reviewed-by: Volker Hilsheimer --- tools/dumpcpp/main.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/dumpcpp/main.cpp b/tools/dumpcpp/main.cpp index 4545c60..a7dbbea 100644 --- a/tools/dumpcpp/main.cpp +++ b/tools/dumpcpp/main.cpp @@ -1087,7 +1087,13 @@ int main(int argc, char **argv) typeLib.clear(); QStringList codes = settings.childGroups(); for (int c = 0; c < codes.count(); ++c) { - typeLib = settings.value(QLatin1Char('/') + codes.at(c) + QLatin1String("/0/win32/.")).toString(); + const QString keyPrefix = QLatin1Char('/') + codes.at(c) + QLatin1String("/0/"); + if (QT_POINTER_SIZE == 8) { + typeLib = settings.value(keyPrefix + QLatin1String("win64/.")).toString(); + if (QFile::exists(typeLib)) + break; + } + typeLib = settings.value(keyPrefix + QLatin1String("win32/.")).toString(); if (QFile::exists(typeLib)) break; } @@ -1145,8 +1151,13 @@ int main(int argc, char **argv) settings.endGroup(); for (int c = 0; c < codes.count(); ++c) { - typeLib = settings.value(key + QLatin1Char('/') + codes.at(c) - + QLatin1String("/win32/.")).toString(); + const QString keyPrefix = key + QLatin1Char('/') + codes.at(c) + QLatin1Char('/'); + if (QT_POINTER_SIZE == 8) { + typeLib = settings.value(keyPrefix + QLatin1String("win64/.")).toString(); + if (QFile::exists(typeLib)) + break; + } + typeLib = settings.value(keyPrefix + QLatin1String("win32/.")).toString(); if (QFile::exists(typeLib)) break; } -- cgit v1.2.3