diff options
Diffstat (limited to 'src/dbus/qdbusmetaobject.cpp')
-rw-r--r-- | src/dbus/qdbusmetaobject.cpp | 84 |
1 files changed, 43 insertions, 41 deletions
diff --git a/src/dbus/qdbusmetaobject.cpp b/src/dbus/qdbusmetaobject.cpp index 54c9389862..48f3eb53d0 100644 --- a/src/dbus/qdbusmetaobject.cpp +++ b/src/dbus/qdbusmetaobject.cpp @@ -70,11 +70,11 @@ private: void parseSignals(); void parseProperties(); - static int aggregateParameterCount(const QMap<QByteArray, Method> &map); + static qsizetype aggregateParameterCount(const QMap<QByteArray, Method> &map); }; -static const int intsPerProperty = 2; -static const int intsPerMethod = 2; +static const qsizetype intsPerProperty = 2; +static const qsizetype intsPerMethod = 2; struct QDBusMetaObjectPrivate : public QMetaObjectPrivate { @@ -221,7 +221,7 @@ void QDBusMetaObjectGenerator::parseMethods() bool ok = true; // build the input argument list - for (int i = 0; i < m.inputArgs.count(); ++i) { + for (qsizetype i = 0; i < m.inputArgs.size(); ++i) { const QDBusIntrospection::Argument &arg = m.inputArgs.at(i); Type type = findType(arg.type.toLatin1(), m.annotations, "In", i); @@ -240,7 +240,7 @@ void QDBusMetaObjectGenerator::parseMethods() if (!ok) continue; // build the output argument list: - for (int i = 0; i < m.outputArgs.count(); ++i) { + for (qsizetype i = 0; i < m.outputArgs.size(); ++i) { const QDBusIntrospection::Argument &arg = m.outputArgs.at(i); Type type = findType(arg.type.toLatin1(), m.annotations, "Out", i); @@ -266,7 +266,7 @@ void QDBusMetaObjectGenerator::parseMethods() // convert the last commas: if (!mm.parameterNames.isEmpty()) - prototype[prototype.length() - 1] = ')'; + prototype[prototype.size() - 1] = ')'; else prototype.append(')'); @@ -297,7 +297,7 @@ void QDBusMetaObjectGenerator::parseSignals() bool ok = true; // build the output argument list - for (int i = 0; i < s.outputArgs.count(); ++i) { + for (qsizetype i = 0; i < s.outputArgs.size(); ++i) { const QDBusIntrospection::Argument &arg = s.outputArgs.at(i); Type type = findType(arg.type.toLatin1(), s.annotations, "Out", i); @@ -317,7 +317,7 @@ void QDBusMetaObjectGenerator::parseSignals() // convert the last commas: if (!mm.parameterNames.isEmpty()) - prototype[prototype.length() - 1] = ')'; + prototype[prototype.size() - 1] = ')'; else prototype.append(')'); @@ -360,9 +360,9 @@ void QDBusMetaObjectGenerator::parseProperties() // Returns the sum of all parameters (including return type) for the given // \a map of methods. This is needed for calculating the size of the methods' // parameter type/name meta-data. -int QDBusMetaObjectGenerator::aggregateParameterCount(const QMap<QByteArray, Method> &map) +qsizetype QDBusMetaObjectGenerator::aggregateParameterCount(const QMap<QByteArray, Method> &map) { - int sum = 0; + qsizetype sum = 0; QMap<QByteArray, Method>::const_iterator it; for (it = map.constBegin(); it != map.constEnd(); ++it) { const Method &m = it.value(); @@ -384,11 +384,11 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) QVarLengthArray<int> idata; idata.resize(sizeof(QDBusMetaObjectPrivate) / sizeof(int)); - int methodParametersDataSize = + qsizetype methodParametersDataSize = ((aggregateParameterCount(signals_) + aggregateParameterCount(methods)) * 2) // types and parameter names - - signals_.count() // return "parameters" don't have names - - methods.count(); // ditto + - signals_.size() // return "parameters" don't have names + - methods.size(); // ditto QDBusMetaObjectPrivate *header = reinterpret_cast<QDBusMetaObjectPrivate *>(idata.data()); static_assert(QMetaObjectPrivate::OutputRevision == 10, "QtDBus meta-object generator should generate the same version as moc"); @@ -396,42 +396,44 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) header->className = 0; header->classInfoCount = 0; header->classInfoData = 0; - header->methodCount = signals_.count() + methods.count(); - header->methodData = idata.size(); - header->propertyCount = properties.count(); - header->propertyData = header->methodData + header->methodCount * QMetaObjectPrivate::IntsPerMethod + methodParametersDataSize; + header->methodCount = int(signals_.size() + methods.size()); + header->methodData = int(idata.size()); + header->propertyCount = int(properties.size()); + header->propertyData = int(header->methodData + header->methodCount * + QMetaObjectPrivate::IntsPerMethod + methodParametersDataSize); header->enumeratorCount = 0; header->enumeratorData = 0; header->constructorCount = 0; header->constructorData = 0; header->flags = RequiresVariantMetaObject; - header->signalCount = signals_.count(); + header->signalCount = signals_.size(); // These are specific to QDBusMetaObject: - header->propertyDBusData = header->propertyData + header->propertyCount * QMetaObjectPrivate::IntsPerProperty; - header->methodDBusData = header->propertyDBusData + header->propertyCount * intsPerProperty; + header->propertyDBusData = int(header->propertyData + header->propertyCount + * QMetaObjectPrivate::IntsPerProperty); + header->methodDBusData = int(header->propertyDBusData + header->propertyCount * intsPerProperty); - int data_size = idata.size() + + qsizetype data_size = idata.size() + (header->methodCount * (QMetaObjectPrivate::IntsPerMethod+intsPerMethod)) + methodParametersDataSize + (header->propertyCount * (QMetaObjectPrivate::IntsPerProperty+intsPerProperty)); - for (const Method &mm : qAsConst(signals_)) - data_size += 2 + mm.inputTypes.count() + mm.outputTypes.count(); - for (const Method &mm : qAsConst(methods)) - data_size += 2 + mm.inputTypes.count() + mm.outputTypes.count(); + for (const Method &mm : std::as_const(signals_)) + data_size += 2 + mm.inputTypes.size() + mm.outputTypes.size(); + for (const Method &mm : std::as_const(methods)) + data_size += 2 + mm.inputTypes.size() + mm.outputTypes.size(); idata.resize(data_size + 1); QMetaStringTable strings(className.toLatin1()); - int offset = header->methodData; - int parametersOffset = offset + header->methodCount * QMetaObjectPrivate::IntsPerMethod; - int signatureOffset = header->methodDBusData; - int typeidOffset = header->methodDBusData + header->methodCount * intsPerMethod; + qsizetype offset = header->methodData; + qsizetype parametersOffset = offset + header->methodCount * QMetaObjectPrivate::IntsPerMethod; + qsizetype signatureOffset = header->methodDBusData; + qsizetype typeidOffset = header->methodDBusData + header->methodCount * intsPerMethod; idata[typeidOffset++] = 0; // eod - int totalMetaTypeCount = properties.count(); + qsizetype totalMetaTypeCount = properties.size(); ++totalMetaTypeCount; // + 1 for metatype of dynamic metaobject for (const auto& methodContainer: {signals_, methods}) { for (const auto& method: methodContainer) { - int argc = method.inputTypes.size() + qMax(qsizetype(0), method.outputTypes.size() - 1); + qsizetype argc = method.inputTypes.size() + qMax(qsizetype(0), method.outputTypes.size() - 1); totalMetaTypeCount += argc + 1; } } @@ -439,7 +441,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) int propertyId = 0; // add each method: - int currentMethodMetaTypeOffset = properties.count() + 1; + qsizetype currentMethodMetaTypeOffset = properties.size() + 1; for (int x = 0; x < 2; ++x) { // Signals must be added before other methods, to match moc. QMap<QByteArray, Method> &map = (x == 0) ? signals_ : methods; @@ -447,7 +449,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) it != map.constEnd(); ++it) { const Method &mm = it.value(); - int argc = mm.inputTypes.size() + qMax(qsizetype(0), mm.outputTypes.size() - 1); + qsizetype argc = mm.inputTypes.size() + qMax(qsizetype(0), mm.outputTypes.size() - 1); idata[offset++] = strings.enter(mm.name); idata[offset++] = argc; @@ -457,7 +459,7 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) idata[offset++] = currentMethodMetaTypeOffset; // Parameter types - for (int i = -1; i < argc; ++i) { + for (qsizetype i = -1; i < argc; ++i) { int type; QByteArray typeName; if (i < 0) { // Return type @@ -488,18 +490,18 @@ void QDBusMetaObjectGenerator::write(QDBusMetaObject *obj) idata[parametersOffset++] = typeInfo; } // Parameter names - for (int i = 0; i < argc; ++i) + for (qsizetype i = 0; i < argc; ++i) idata[parametersOffset++] = strings.enter(mm.parameterNames.at(i)); idata[signatureOffset++] = typeidOffset; - idata[typeidOffset++] = mm.inputTypes.count(); - memcpy(idata.data() + typeidOffset, mm.inputTypes.data(), mm.inputTypes.count() * sizeof(int)); - typeidOffset += mm.inputTypes.count(); + idata[typeidOffset++] = mm.inputTypes.size(); + memcpy(idata.data() + typeidOffset, mm.inputTypes.data(), mm.inputTypes.size() * sizeof(int)); + typeidOffset += mm.inputTypes.size(); idata[signatureOffset++] = typeidOffset; - idata[typeidOffset++] = mm.outputTypes.count(); - memcpy(idata.data() + typeidOffset, mm.outputTypes.data(), mm.outputTypes.count() * sizeof(int)); - typeidOffset += mm.outputTypes.count(); + idata[typeidOffset++] = mm.outputTypes.size(); + memcpy(idata.data() + typeidOffset, mm.outputTypes.data(), mm.outputTypes.size() * sizeof(int)); + typeidOffset += mm.outputTypes.size(); } } |