diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/kvs/kvi_kvs_object_class.cpp | 18 | ||||
| -rw-r--r-- | src/modules/objects/class_treewidgetitem.cpp | 6 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/kvirc/kvs/kvi_kvs_object_class.cpp b/src/kvirc/kvs/kvi_kvs_object_class.cpp index a5cb9f2ce..1fcdccffb 100644 --- a/src/kvirc/kvs/kvi_kvs_object_class.cpp +++ b/src/kvirc/kvs/kvi_kvs_object_class.cpp @@ -123,31 +123,37 @@ void KviKvsObjectClass::registerStandardFalseReturnFunctionHandler(const QString KviKvsObject * KviKvsObjectClass::allocateInstance(KviKvsObject * pParent,const QString &szName,KviKvsRunTimeContext * pContext,KviKvsVariantList * pParams) { - if(!m_allocProc)return 0; + if(!m_allocProc) + return 0; + KviKvsObject * pObject = m_allocProc(this,pParent,szName); - if(!pObject)return 0; + if(!pObject) + return 0; - KviKvsVariant * v=pParams->first(); // FIXME: what the hell is this ? if(!pObject->init(pContext,pParams)) { // internal init failure : abort - delete pObject; + pObject->dieNow(); return 0; } - //KviKvsVariant ret; + // copy params KviKvsVariantList copy; copy.setAutoDelete(false); + + KviKvsVariant * v = pParams->first(); + while(v) { copy.append(v); v = pParams->next(); } KviKvsVariant ret; + if(!pObject->callFunction(pObject,"constructor",QString(),pContext,&ret,©)) { // ops...constructor failed (script error!) - delete pObject; + pObject->dieNow(); return 0; } diff --git a/src/modules/objects/class_treewidgetitem.cpp b/src/modules/objects/class_treewidgetitem.cpp index 11f455e0a..49cfdae59 100644 --- a/src/modules/objects/class_treewidgetitem.cpp +++ b/src/modules/objects/class_treewidgetitem.cpp @@ -178,8 +178,8 @@ bool KviKvsObject_treewidgetitem::init(KviKvsRunTimeContext * pContext,KviKvsVar { if (!parentObject()) { - pContext->error(__tr2qs_ctx("The listviewitem cannot be parentless","objects")); - return false; + pContext->error(__tr2qs_ctx("The listviewitem cannot be parentless","objects")); + return false; } if(parentObject()->inheritsClass("listviewitem")) { @@ -188,7 +188,7 @@ bool KviKvsObject_treewidgetitem::init(KviKvsRunTimeContext * pContext,KviKvsVar if(parentObject()->inheritsClass("listview")) m_pTreeWidgetItem = new KviKvsStandardTreeWidgetItem(this,((QTreeWidget *)parentScriptWidget())); else { - pContext->error(__tr2qs_ctx("The parent of the listwidgetitem must be either another listwidgetitem or a listwidget","objects")); + pContext->error(__tr2qs_ctx("The parent of the listwidgetitem must be either another listwidgetitem or a listwidget","objects")); return false; } } |
