diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 587aa5971d8..2b09cf873a7 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -121,7 +121,7 @@ int Generator::stridx(const QByteArray &s) // Returns the sum of all parameters (including return type) for the given // \a list of methods. This is needed for calculating the size of the methods' // parameter type/name meta-data. -static int aggregateParameterCount(const QList &list) +static int aggregateParameterCount(const QVector &list) { int sum = 0; for (int i = 0; i < list.count(); ++i) @@ -194,7 +194,7 @@ void Generator::generateCode() // filter out undeclared enumerators and sets { - QList enumList; + QVector enumList; for (int i = 0; i < cdef->enumList.count(); ++i) { EnumDef def = cdef->enumList.at(i); if (cdef->enumDeclarations.contains(def.name)) { @@ -571,7 +571,7 @@ void Generator::generateCode() cname, cname, cdef->classname.constData()); } for (int i = 0; i < cdef->interfaceList.size(); ++i) { - const QList &iface = cdef->interfaceList.at(i); + const QVector &iface = cdef->interfaceList.at(i); for (int j = 0; j < iface.size(); ++j) { fprintf(out, " if (!strcmp(_clname, %s))\n return ", iface.at(j).interfaceId.constData()); for (int k = j; k >= 0; --k) @@ -628,7 +628,7 @@ void Generator::generateClassInfos() } } -void Generator::registerFunctionStrings(const QList& list) +void Generator::registerFunctionStrings(const QVector& list) { for (int i = 0; i < list.count(); ++i) { const FunctionDef &f = list.at(i); @@ -648,7 +648,7 @@ void Generator::registerFunctionStrings(const QList& list) } } -void Generator::generateFunctions(const QList& list, const char *functype, int type, int ¶msIndex) +void Generator::generateFunctions(const QVector& list, const char *functype, int type, int ¶msIndex) { if (list.isEmpty()) return; @@ -694,7 +694,7 @@ void Generator::generateFunctions(const QList& list, const char *fu } } -void Generator::generateFunctionRevisions(const QList& list, const char *functype) +void Generator::generateFunctionRevisions(const QVector& list, const char *functype) { if (list.count()) fprintf(out, "\n // %ss: revision\n", functype); @@ -704,7 +704,7 @@ void Generator::generateFunctionRevisions(const QList& list, const } } -void Generator::generateFunctionParameters(const QList& list, const char *functype) +void Generator::generateFunctionParameters(const QVector& list, const char *functype) { if (list.isEmpty()) return; @@ -917,7 +917,7 @@ void Generator::generateMetacall() fprintf(out, " "); bool needElse = false; - QList methodList; + QVector methodList; methodList += cdef->signalList; methodList += cdef->slotList; methodList += cdef->methodList; @@ -1079,7 +1079,7 @@ QMultiMap Generator::automaticPropertyMetaTypesHelper() return automaticPropertyMetaTypes; } -QMap > Generator::methodsWithAutomaticTypesHelper(const QList &methodList) +QMap > Generator::methodsWithAutomaticTypesHelper(const QVector &methodList) { QMap > methodsWithAutomaticTypes; for (int i = 0; i < methodList.size(); ++i) { @@ -1133,7 +1133,7 @@ void Generator::generateStaticMetacall() isUsed_a = true; } - QList methodList; + QVector methodList; methodList += cdef->signalList; methodList += cdef->slotList; methodList += cdef->methodList; diff --git a/src/tools/moc/generator.h b/src/tools/moc/generator.h index 2b5f09df5e7..3833148fb30 100644 --- a/src/tools/moc/generator.h +++ b/src/tools/moc/generator.h @@ -45,10 +45,10 @@ private: bool registerableMetaType(const QByteArray &propertyType); void registerClassInfoStrings(); void generateClassInfos(); - void registerFunctionStrings(const QList &list); - void generateFunctions(const QList &list, const char *functype, int type, int ¶msIndex); - void generateFunctionRevisions(const QList& list, const char *functype); - void generateFunctionParameters(const QList &list, const char *functype); + void registerFunctionStrings(const QVector &list); + void generateFunctions(const QVector &list, const char *functype, int type, int ¶msIndex); + void generateFunctionRevisions(const QVector &list, const char *functype); + void generateFunctionParameters(const QVector &list, const char *functype); void generateTypeInfo(const QByteArray &typeName, bool allowEmptyName = false); void registerEnumStrings(); void generateEnums(int index); @@ -59,7 +59,7 @@ private: void generateSignal(FunctionDef *def, int index); void generatePluginMetaData(); QMultiMap automaticPropertyMetaTypesHelper(); - QMap > methodsWithAutomaticTypesHelper(const QList &methodList); + QMap > methodsWithAutomaticTypesHelper(const QVector &methodList); void strreg(const QByteArray &); // registers a string int stridx(const QByteArray &); // returns a string's id diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp index 54a0871bec6..0e689bd5c1e 100644 --- a/src/tools/moc/moc.cpp +++ b/src/tools/moc/moc.cpp @@ -538,7 +538,7 @@ bool Moc::parseMaybeFunction(const ClassDef *cdef, FunctionDef *def) void Moc::parse() { - QList namespaceList; + QVector namespaceList; bool templateClass = false; while (hasNext()) { Token t = next(); @@ -801,7 +801,7 @@ void Moc::parse() } } -static bool any_type_contains(const QList &properties, const QByteArray &pattern) +static bool any_type_contains(const QVector &properties, const QByteArray &pattern) { for (const auto &p : properties) { if (p.type.contains(pattern)) @@ -810,7 +810,7 @@ static bool any_type_contains(const QList &properties, const QByteA return false; } -static bool any_arg_contains(const QList &functions, const QByteArray &pattern) +static bool any_arg_contains(const QVector &functions, const QByteArray &pattern) { for (const auto &f : functions) { for (const auto &arg : f.arguments) { @@ -835,7 +835,7 @@ static QByteArrayList make_candidates() return result; } -static QByteArrayList requiredQtContainers(const QList &classes) +static QByteArrayList requiredQtContainers(const QVector &classes) { static const QByteArrayList candidates = make_candidates(); @@ -1319,7 +1319,7 @@ void Moc::parseInterfaces(ClassDef *def) { next(LPAREN); while (test(IDENTIFIER)) { - QList iface; + QVector iface; iface += ClassDef::Interface(lexem()); while (test(SCOPE)) { iface.last().className += lexem(); diff --git a/src/tools/moc/moc.h b/src/tools/moc/moc.h index cca14d1fced..843bdeb794f 100644 --- a/src/tools/moc/moc.h +++ b/src/tools/moc/moc.h @@ -59,6 +59,7 @@ struct Type Token firstToken; ReferenceType referenceType; }; +Q_DECLARE_TYPEINFO(Type, Q_MOVABLE_TYPE); struct EnumDef { @@ -67,6 +68,7 @@ struct EnumDef bool isEnumClass; // c++11 enum class EnumDef() : isEnumClass(false) {} }; +Q_DECLARE_TYPEINFO(EnumDef, Q_MOVABLE_TYPE); struct ArgumentDef { @@ -76,6 +78,7 @@ struct ArgumentDef QByteArray typeNameForCast; // type name to be used in cast from void * in metacall bool isDefault; }; +Q_DECLARE_TYPEINFO(ArgumentDef, Q_MOVABLE_TYPE); struct FunctionDef { @@ -89,7 +92,7 @@ struct FunctionDef QByteArray name; bool returnTypeIsVolatile; - QList arguments; + QVector arguments; enum Access { Private, Protected, Public }; Access access; @@ -112,6 +115,7 @@ struct FunctionDef int revision; }; +Q_DECLARE_TYPEINFO(FunctionDef, Q_MOVABLE_TYPE); struct PropertyDef { @@ -130,6 +134,7 @@ struct PropertyDef } int revision; }; +Q_DECLARE_TYPEINFO(PropertyDef, Q_MOVABLE_TYPE); struct ClassInfoDef @@ -137,6 +142,7 @@ struct ClassInfoDef QByteArray name; QByteArray value; }; +Q_DECLARE_TYPEINFO(ClassInfoDef, Q_MOVABLE_TYPE); struct ClassDef { ClassDef(): @@ -144,16 +150,17 @@ struct ClassDef { , revisionedMethods(0), revisionedProperties(0), begin(0), end(0){} QByteArray classname; QByteArray qualified; - QList > superclassList; + QVector > superclassList; struct Interface { + Interface() {} // for QVector, don't use inline explicit Interface(const QByteArray &_className) : className(_className) {} QByteArray className; QByteArray interfaceId; }; - QList >interfaceList; + QVector >interfaceList; bool hasQObject; bool hasQGadget; @@ -164,13 +171,13 @@ struct ClassDef { QJsonDocument metaData; } pluginData; - QList constructorList; - QList signalList, slotList, methodList, publicList; + QVector constructorList; + QVector signalList, slotList, methodList, publicList; int notifyableProperties; - QList propertyList; - QList classInfoList; + QVector propertyList; + QVector classInfoList; QMap enumDeclarations; - QList enumList; + QVector enumList; QMap flagAliases; int revisionedMethods; int revisionedProperties; @@ -178,12 +185,15 @@ struct ClassDef { int begin; int end; }; +Q_DECLARE_TYPEINFO(ClassDef, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(ClassDef::Interface, Q_MOVABLE_TYPE); struct NamespaceDef { QByteArray name; int begin; int end; }; +Q_DECLARE_TYPEINFO(NamespaceDef, Q_MOVABLE_TYPE); class Moc : public Parser { @@ -198,7 +208,7 @@ public: bool mustIncludeQPluginH; QByteArray includePath; QList includeFiles; - QList classList; + QVector classList; QMap interface2IdMap; QList metaTypes; // map from class name to fully qualified name diff --git a/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp b/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp index 1b06845c469..6fb42ee7581 100644 --- a/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp +++ b/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp @@ -127,7 +127,7 @@ static QString addFunction(const FunctionDef &mm, bool isSignal = false) { return QString(); // wasn't a valid type } } - QList names = mm.arguments; + QVector names = mm.arguments; QVector types; QString errorMsg; int inputCount = qDBusParametersForMethod(mm, types, errorMsg); @@ -396,7 +396,7 @@ int main(int argc, char **argv) args.append(QString::fromLocal8Bit(argv[n])); parseCmdLine(args); - QList classes; + QVector classes; for (int i = 0; i < args.count(); ++i) { const QString arg = args.at(i);