7ceba9c472
This avoids having to rely on moc precalculating everything and getting its sums right, as the main integer table only has a string index (unlike my original 5.0 plan which would have stored the offset). For example, for: struct Object : QObject { Q_OBJECT signals: void changed(const QVariant &v); } moc now generates: struct qt_meta_stringdata_Object_t {}; static constexpr auto qt_meta_stringdata_Object = QtMocHelpers::stringData( "Object", "foobar", "", "v" ); Notes on the implementation: * the old code is retained because we need moc 6.5 to generate code compatible with QtCore 6.2-6.4. It's marked for removal in Qt 6.9. * the struct qt_meta_stringdata_%s_t remains because we need a TU-specific type for QtPrivate::is_complete (via qt_incomplete_metaTypeArray). This can be cleaned up. * after this change, GDB complains while loading QtCore: warning: internal error: string "StringData<long sequence of numbers>" failed to be canonicalized but debugging does not appear to be impacted. It's just annoying because it shows up when QtTest detects a crash too. Change-Id: Id0fb9ab0089845ee8843fffd16f9d5493e9bd708 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> |
||
---|---|---|
.github/workflows | ||
bin | ||
cmake | ||
coin | ||
config.tests | ||
dist | ||
doc | ||
examples | ||
lib | ||
libexec | ||
LICENSES | ||
mkspecs | ||
qmake | ||
src | ||
tests | ||
util | ||
.cmake.conf | ||
.gitattributes | ||
.gitignore | ||
.lgtm.yml | ||
.tag | ||
CMakeLists.txt | ||
conanfile.py | ||
config_help.txt | ||
configure | ||
configure.bat | ||
configure.cmake | ||
dependencies.yaml | ||
qt_cmdline.cmake | ||
sync.profile |