49 if (!
id && !
type.isEmpty() &&
type !=
"void")
70 attributes(((int)_access) | (((int)_methodType) << 2)),
139 return ((
flags &
f) != 0);
185 std::vector<QMetaMethodBuilderPrivate>
methods;
224 QMetaObjectBuilder::AddMembers
members)
555 property.setStored(prototype.
isStored());
556 property.setUser(prototype.
isUser());
558 property.setEnumOrFlag(prototype.
isEnumType());
560 property.setFinal(prototype.
isFinal());
561 property.setRevision(prototype.
revision());
652 QMetaObjectBuilder::AddMembers
members)
712 while (*objects !=
nullptr) {
791 if (
index >= 0 && index < d->relatedMetaObjects.size())
806 if (
index >= 0 && index < d->classInfoNames.size())
821 if (
index >= 0 && index < d->classInfoValues.size())
842 property.notifySignal = -1;
844 property.notifySignal--;
896 if (
index >= 0 && index < d->classInfoNames.size()) {
916 if (
index >= 0 && index < d->relatedMetaObjects.size())
930 if (sig ==
method.signature)
1034#define ALIGN(size,type) \
1035 (size) = ((size) + sizeof(type) - 1) & ~(sizeof(type) - 1)
1058 if (
it != m_entries.
end())
1068 return alignof(
uint);
1082 const int offsetOfStringdataMember,
int &stringdataOffset)
1085 int offset = offsetOfStringdataMember + stringdataOffset;
1088 memcpy(
out + 2 *
i *
sizeof(
uint), &offsetLen, 2 *
sizeof(
uint));
1093 stringdataOffset +=
size + 1;
1104 int offsetOfStringdataMember = int(m_entries.
size() * 2 *
sizeof(
uint));
1105 int stringdataOffset = 0;
1108 writeString(
out, 0, m_className, offsetOfStringdataMember, stringdataOffset);
1112 const int i =
it.value();
1150 bool hasRevisionedMethods =
d->hasRevisionedMethods();
1169 int methodParametersDataSize =
1172 - int(
d->methods.size())
1173 - int(
d->constructors.size());
1177 pmeta->
flags =
d->flags.toInt();
1183 dataIndex += 2 *
d->classInfoNames.size();
1188 if (hasRevisionedMethods)
1189 dataIndex += int(
d->methods.size());
1190 paramsIndex = dataIndex;
1191 dataIndex += methodParametersDataSize;
1205 dataIndex += 2 * int(
d->classInfoNames.size());
1207 if (hasRevisionedMethods)
1208 dataIndex += int(
d->methods.size());
1209 paramsIndex = dataIndex;
1210 dataIndex += methodParametersDataSize;
1217 enumIndex = dataIndex;
1218 for (
const auto &enumerator :
d->enumerators)
1219 dataIndex += 2 * enumerator.keys.size();
1225 int *
data =
reinterpret_cast<int *
>(pmeta);
1226 size += dataIndex *
sizeof(int);
1228 [[maybe_unused]]
char *
str =
reinterpret_cast<char *
>(
buf +
size);
1254 int parameterMetaTypesIndex = int(
d->properties.size()) + 1;
1255 for (
const auto &
method :
d->methods) {
1257 int argc =
method.parameterCount();
1262 data[dataIndex + 1] = argc;
1263 data[dataIndex + 2] = paramsIndex;
1266 data[dataIndex + 5] = parameterMetaTypesIndex;
1271 paramsIndex += 1 + argc * 2;
1272 parameterMetaTypesIndex += 1 + argc;
1274 if (hasRevisionedMethods) {
1275 for (
const auto &
method :
d->methods) {
1284 + (hasRevisionedMethods ?
int(
d->methods.size()) : 0));
1285 for (
int x = 0;
x < 2; ++
x) {
1286 const std::vector<QMetaMethodBuilderPrivate> &
methods = (
x == 0) ?
d->methods :
d->constructors;
1289 int paramCount = paramTypeNames.
size();
1290 for (
int i = -1;
i < paramCount; ++
i) {
1292 [[maybe_unused]]
int typeInfo;
1298 data[dataIndex] = typeInfo;
1303 while (paramNames.
size() < paramCount)
1305 for (
int i = 0;
i < paramCount; ++
i) {
1306 [[maybe_unused]]
int stringIndex =
strings.enter(paramNames.
at(
i));
1308 data[dataIndex] = stringIndex;
1317 [[maybe_unused]]
int name =
strings.enter(prop.name);
1320 if (!prop.metaType.isValid())
1322 [[maybe_unused]]
const int typeInfo = prop.metaType.
isValid()
1323 ? prop.metaType.id()
1326 [[maybe_unused]]
int flags = prop.flags;
1333 data[dataIndex + 1] = typeInfo;
1335 data[dataIndex + 3] = prop.notifySignal;
1336 data[dataIndex + 4] = prop.revision;
1343 for (
const auto &enumerator :
d->enumerators) {
1344 [[maybe_unused]]
int name =
strings.enter(enumerator.name);
1345 [[maybe_unused]]
int enumName =
strings.enter(enumerator.enumName);
1346 [[maybe_unused]]
int isFlag = enumerator.isFlag ?
EnumIsFlag : 0;
1347 [[maybe_unused]]
int isScoped = enumerator.isScoped ?
EnumIsScoped : 0;
1348 int count = enumerator.keys.size();
1349 int enumOffset = enumIndex;
1352 data[dataIndex + 1] = enumName;
1353 data[dataIndex + 2] = isFlag | isScoped;
1355 data[dataIndex + 4] = enumOffset;
1358 [[maybe_unused]]
int keyIndex =
strings.enter(enumerator.keys[
key]);
1360 data[enumOffset++] = keyIndex;
1361 data[enumOffset++] = enumerator.values[
key];
1365 enumIndex += 2 *
count;
1370 for (
const auto &ctor :
d->constructors) {
1371 [[maybe_unused]]
int name =
strings.enter(ctor.name());
1372 int argc = ctor.parameterCount();
1373 [[maybe_unused]]
int tag =
strings.enter(ctor.tag);
1374 [[maybe_unused]]
int attrs = ctor.attributes;
1377 data[dataIndex + 1] = argc;
1378 data[dataIndex + 2] = paramsIndex;
1381 data[dataIndex + 5] = parameterMetaTypesIndex;
1384 paramsIndex += 1 + argc * 2;
1385 parameterMetaTypesIndex += argc;
1395 data[enumIndex] = 0;
1398 if (
d->relatedMetaObjects.size() > 0) {
1401 auto objects =
reinterpret_cast<SuperData *
>(
buf +
size);
1406 objects[
index] =
nullptr;
1408 size +=
sizeof(SuperData) * (
d->relatedMetaObjects.size() + 1);
1415 for (
const auto &prop :
d->properties) {
1424 for (
const auto &
method:
d->methods) {
1428 for (
const auto ¶meterType:
method.parameterTypes()) {
1434 for (
const auto &constructor :
d->constructors) {
1435 for (
const auto ¶meterType : constructor.parameterTypes()) {
1463 int size = buildMetaObject<Prepare>(d,
nullptr, 0);
1464 char *
buf =
reinterpret_cast<char *
>(malloc(
size));
1466 buildMetaObject<Construct>(d,
buf,
size);
1511 if (_mobj && _index >= 0 && _index <
int(_mobj->d->
methods.size()))
1512 return &(_mobj->d->
methods[_index]);
1513 else if (_mobj && -_index >= 1 && -_index <=
int(_mobj->d->
constructors.size()))
1532 return (-_index) - 1;
1542 return d->methodType();
1556 return d->signature;
1571 return d->returnType;
1599 return d->parameterTypes();
1613 return d->parameterNames;
1627 d->parameterNames =
value;
1695 return (
d->attributes >> 4);
1709 d->attributes = ((
d->attributes & 0x0f) | (
value << 4));
1731 d->attributes &= ~MethodIsConst;
1760 d->attributes &= ~MethodRevisioned;
1773 if (_mobj && _index >= 0 && _index <
int(_mobj->d->
properties.size()))
1827 return d->notifySignal != -1;
1840 if (
d &&
d->notifySignal >= 0)
1856 d->notifySignal =
value._index;
1858 d->notifySignal = -1;
1872 d->notifySignal = -1;
1977 return d->flag(
User);
2060 if (
auto d = d_func())
2216 if (
auto d = d_func())
2254 if (_mobj && _index >= 0 && _index <
int(_mobj->d->
enumerators.size()))
2307 d->enumName = alias;
2396 return d->keys.size();
2410 if (
d &&
index >= 0 && index < d->
keys.size())
2425 if (
d &&
index >= 0 && index < d->
keys.size())
2441 int index =
d->keys.size();
2458 if (
d &&
index >= 0 && index < d->
keys.size()) {
2460 d->values.removeAt(
index);
static JNINativeMethod methods[]
qsizetype indexOf(char c, qsizetype from=0) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
QByteArray left(qsizetype len) const
Returns a byte array that contains the first len bytes of this byte array.
bool isNull() const noexcept
Returns true if this byte array is null; otherwise returns false.
qsizetype size() const noexcept
Returns the number of items in the hash.
const_iterator constEnd() const noexcept
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the ...
iterator find(const Key &key)
Returns an iterator pointing to the item with the key in the hash.
const_iterator constBegin() const noexcept
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first item in the hash.
iterator end() noexcept
Returns an \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the last ...
friend class const_iterator
const_iterator ConstIterator
Qt-style synonym for QHash::const_iterator.
iterator insert(const Key &key, const T &value)
Inserts a new item with the key and a value of value.
qsizetype size() const noexcept
void removeAt(qsizetype i)
const_reference at(qsizetype i) const noexcept
void append(parameter_type t)
const QChar * constData() const
Returns a pointer to the data stored in the QString.
qsizetype size() const
Returns the number of characters in this string.
QSet< QString >::iterator it
Combined button and popup list for selecting options.
Q_CORE_EXPORT bool isBuiltinType(const QByteArray &type)
AudioChannelLayoutTag tag
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char * method
static struct AttrInfo attrs[]
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
constexpr const T & qMax(const T &a, const T &b)
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLsizei GLenum GLenum * types
GLsizei const GLchar ** strings
[1]
GLenum GLenum GLsizei count
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
QCborArray members(const QCborMap *classDef, QLatin1StringView key, QTypeRevision maxMajorVersion, Postprocess &&process)
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)
const char className[16]
[1]
QTextStream out(stdout)
[7]
void writeString(QCborStreamWriter &writer, const QString &str)
[8]