static SSLOp *allocSSLOp(SSLSocket *socket, sslCb callback, void *arg, void *buffer, size_t size, AsyncFlags flags) { SSLOp *op = queryObject(socket->base, sslPoolId); if (!op) { op = malloc(sizeof(SSLOp)); op->sslBuffer = (uint8_t*)malloc(1024); op->sslBufferSize = 1024; } op->info.socket = socket; op->info.callback = callback; op->info.arg = arg; op->info.buffer = buffer; op->info.flags = flags; op->info.transactionSize = size; op->info.bytesTransferred = 0; op->next = 0; return op; }
void QSAEditor::doObjectCompletion() { QTextCursor cursor = textCursor(); cursor.movePosition(QTextCursor::StartOfWord, QTextCursor::KeepAnchor); QString objectName = cursor.selectedText(); if (objectName.endsWith(QLatin1Char('-'))) objectName.chop(1); objectName = objectName.simplified(); QString object = resolveFullyQualifiedValue(objectName, parseAssignments(functionCode())); bool assumedStatic = false; QSCompletionObject o; if(objectName == object) { QSObject stobj = env()->globalObject().get(object); if(stobj.isValid() && stobj.objectType()->valueType() == TypeClass) { #if defined ( QSA_COMPLETION_DEBUG ) printf(" -> assuming static\n"); #endif o = stobj; assumedStatic = true; } } if(o.type == QSCompletionObject::TNull) { o = queryObject(object); } #if defined ( QSA_COMPLETION_DEBUG ) printf(" -> type is: %d\n", o.type); #endif o.resolve(); if (o.isNull()) return; QVector<CompletionEntry> res; QSObject nullObject; switch (o.type) { case QSCompletionObject::TQSObject: #if defined ( QSA_COMPLETION_DEBUG ) printf(" -> objectType is: %s\n", o.qsobj.objectType()->name().latin1()); #endif if(o.qsobj.objectType()->name() == QString::fromLatin1("FactoryObject")){ QSObject sinst = ( (QSFactoryObjectProxy*) o.qsobj.objectType() )->staticInstance(); if(!sinst.isValid()) return; QSWrapperShared *shared = (QSWrapperShared*) sinst.shVal(); completeQObject( shared->objects, object, res ); break; } completeQSObject(o.qsobj, res, !assumedStatic); break; case QSCompletionObject::TQMetaObject: completeQMetaObject(o.meta, object, res, IncludeSuperClass, nullObject); break; case QSCompletionObject::TQObject: completeQObject(o.qobj, object, res); break; case QSCompletionObject::TNull: break; } if (!res.isEmpty()) { QFrame *f = new QFrame(0, Qt::Popup); f->setAttribute(Qt::WA_DeleteOnClose); QWidget *box = new CompletionBox(this, res); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(box); layout->setMargin(0); f->setLayout(layout); f->move(mapToGlobal(cursorRect().bottomLeft())); f->show(); box->setFocus(); } }