void QQmlIncubatorPrivate::clear() { if (next.isInList()) { next.remove(); Q_ASSERT(compiledData); QQmlEnginePrivate *enginePriv = QQmlEnginePrivate::get(compiledData->engine); compiledData->release(); compiledData = 0; enginePriv->incubatorCount--; QQmlIncubationController *controller = enginePriv->incubationController; if (controller) controller->incubatingObjectCountChanged(enginePriv->incubatorCount); } else if (compiledData) { compiledData->release(); compiledData = 0; } if (!rootContext.isNull()) { rootContext->activeVMEData = 0; rootContext = 0; } if (nextWaitingFor.isInList()) { Q_ASSERT(waitingOnMe); nextWaitingFor.remove(); waitingOnMe = 0; } // if we're waiting on any incubators then they should be cleared too. while (waitingFor.first()) { QQmlIncubator * i = static_cast<QQmlIncubatorPrivate*>(waitingFor.first())->q; if (i) i->clear(); } bool guardOk = vmeGuard.isOK(); vmeGuard.clear(); if (creator && guardOk) creator->clear(); creator.reset(0); }
static PyObject *meth_QQmlIncubator_clear(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { QQmlIncubator *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QQmlIncubator, &sipCpp)) { sipCpp->clear(); Py_INCREF(Py_None); return Py_None; } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QQmlIncubator, sipName_clear, doc_QQmlIncubator_clear); return NULL; }