[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