int get_signal_index() { static auto senderMetaObject = &QHostInfoResult::staticMetaObject; static auto signal = &QHostInfoResult::resultsReady; int signal_index = -1; void *args[] = { &signal_index, &signal }; senderMetaObject->static_metacall(QMetaObject::IndexOfMethod, 0, args); return signal_index + QMetaObjectPrivate::signalOffset(senderMetaObject); }
template <typename Func> int indexOfMethod(Func method) { using FuncType = QtPrivate::FunctionPointer<Func>; int methodIndex = -1; void *metaArgs[] = {&methodIndex, reinterpret_cast<void **>(&method)}; auto mo = FuncType::Object::staticMetaObject; mo.static_metacall(QMetaObject::IndexOfMethod, 0, metaArgs); return methodIndex; }
PlastiQObject *PlastiQMetaObject::createInstanceFromData(void *data) { #ifdef PQDEBUG PQDBG_LVL_START(__FUNCTION__); PQDBGLPUP(QString("objectId: %1").arg(reinterpret_cast<quint64>(data))); #endif PMOGStack stack = new PMOGStackItem[2]; PlastiQObject *object = Q_NULLPTR; stack[0].s_voidpp = reinterpret_cast<void**>(&object); stack[1].s_voidp = data; static_metacall(PlastiQMetaObject::CreateDataInstance, 0, stack); delete [] stack; PQDBG_LVL_DONE(); return object; }
PlastiQObject *PlastiQMetaObject::newInstance(const QByteArray &signature, const PMOGStack &stack) { #ifdef PQDEBUG PQDBG_LVL_START(__FUNCTION__); PQDBGLPUP(QString("PlastiQMetaObject::d.className = %1").arg(d.className)); #endif int cid = constructorId(signature); PlastiQObject *object = Q_NULLPTR; stack[0].s_voidpp = reinterpret_cast<void**>(&object); if(cid < 0) { PQDBG_LVL_DONE(); return object; } static_metacall(PlastiQMetaObject::CreateInstance, cid, stack); PQDBG_LVL_DONE(); return object; }