[Kde-bindings] KDE/kdebindings/php/phpqt/src
Thomas Moenicke
tm at php-qt.org
Fri Oct 31 15:17:28 UTC 2008
SVN commit 878206 by moenicke:
* the first argument of slot should be marshalled also
* remove ce after invoking virtual methods
CCMAIL: kde-bindings at kde.org
M +1 -1 InvokeSlot.cpp
M +1 -1 phpqt_internals.cpp
M +4 -2 smokephp.cpp
--- trunk/KDE/kdebindings/php/phpqt/src/InvokeSlot.cpp #878205:878206
@@ -33,7 +33,7 @@
QList<QByteArray> qargs = _metaObject->method(_id).parameterTypes();
_items = qargs.count();
_mocStack = smokephp_QtToMoc(smoke, _a + 1, qargs);
- smokeStackFromQtStack(_stack, _a + 1, 1, _items, _mocStack);
+ smokeStackFromQtStack(_stack, _a + 1, 0, _items, _mocStack);
}
InvokeSlot::~InvokeSlot()
--- trunk/KDE/kdebindings/php/phpqt/src/phpqt_internals.cpp #878205:878206
@@ -133,7 +133,7 @@
if(ce_ptr == NULL){
pError() << "no class entry, could not check for message " << methodname;
}
-
+
char* lcname = zend_str_tolower_dup(methodname, strlen(methodname));
if(zend_hash_exists(const_cast<HashTable*>(&ce_ptr->function_table), lcname, strlen(methodname)+1)){
--- trunk/KDE/kdebindings/php/phpqt/src/smokephp.cpp #878205:878206
@@ -93,8 +93,8 @@
if( PHPQt::methodExists( o->ce_ptr(), methodName.constData() ) )
{
- Context::setCallType( Context::VirtualMethodCall );
- pDebug( PHPQt::VirtualMethod ) << methodName << "with" << smoke->methods[method].numArgs << "arguments";
+ Context::setCallType( Context::VirtualMethodCall );
+ pDebug( PHPQt::VirtualMethod ) << methodName << "with" << smoke->methods[method].numArgs << "arguments";
Context::setActiveCe( const_cast<zend_class_entry*>(o->ce_ptr()) );
zval** zmem = (zval**) safe_emalloc( smoke->methods[method].numArgs, sizeof(zval*), 0 );
@@ -108,6 +108,8 @@
VirtualMethodCall c(smoke, method, args, const_cast<zval*>( o->zval_ptr() ), zmem);
c.next();
efree(zmem);
+ Context::removeActiveCe();
+
return true;
}
More information about the Kde-bindings
mailing list