19 for (
int mt = QMetaType::User; mt < QMetaType::User + 1000; mt++)
21 if (!QMetaType::isRegistered(mt))
25 if (fails > 3) {
break; }
28 QMetaType metaType(mt);
29 meta = meta.append(
"type: ")
30 .append(QString::number(mt))
32 .append(QMetaType::typeName(mt))
34 .append(QString::number(QMetaType::sizeOf(mt)))
44 if (!
object) {
return "nullptr"; }
45 return object->metaObject()->className();
50 if (!
object) {
return "nullptr"; }
51 const QString fn =
object->metaObject()->className();
52 if (fn.contains(
"::"))
54 const int index = fn.lastIndexOf(
"::");
55 if (fn.length() > index + 3) {
return fn.mid(index + 2); }
67 _CrtMemState oldState, newState, diff;
68 oldState.lTotalCount = newState.lTotalCount = diff.lTotalCount = 0;
69 diff.lSizes[_NORMAL_BLOCK] = 0;
70 _CrtMemCheckpoint(&oldState);
71 void *p = metaType.create();
72 _CrtMemCheckpoint(&newState);
74 _CrtMemDifference(&diff, &oldState, &newState);
75 return diff.lSizes[_NORMAL_BLOCK];
78 size_t heapSizeOf(
const QMetaObject &metaObject)
80 delete metaObject.newInstance();
81 _CrtMemState oldState, newState, diff;
82 oldState.lTotalCount = newState.lTotalCount = diff.lTotalCount = 0;
83 diff.lSizes[_NORMAL_BLOCK] = 0;
84 _CrtMemCheckpoint(&oldState);
85 QObject *obj = metaObject.newInstance();
86 _CrtMemCheckpoint(&newState);
88 _CrtMemDifference(&diff, &oldState, &newState);
89 return diff.lSizes[_NORMAL_BLOCK];
Free functions in swift::misc.
QString getAllUserMetatypesTypes(const QString &separator)
Get all user metatypes.
size_t heapSizeOf(const QMetaType &)
Q_CC_MSVC.
QString className(const QObject *object)
Class name as from QMetaObject::className with namespace.
void displayAllUserMetatypesTypes(QTextStream &out)
Display all user metatypes.
QString classNameShort(const QObject *object)
Class name as from QMetaObject::className without namespace.