[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bindings
Subject:    [Kde-bindings] KDE/kdebindings/php/phpqt/src
From:       Richard Dale <Richard_Dale () tipitina ! demon ! co ! uk>
Date:       2008-07-13 18:13:08
Message-ID: 1215972788.477347.25107.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 831970 by rdale:

* If a method is being called on an instance which is in a different smoke module to \
the method,  then cast it correctly to the type expected by the method

CCMAIL: kde-bindings@kde.org

 M  +9 -5      MethodCall.cpp  
 M  +1 -2      MethodCall.h  


--- trunk/KDE/kdebindings/php/phpqt/src/MethodCall.cpp #831969:831970
@@ -10,7 +10,7 @@
 MethodCall::MethodCall(Smoke *smoke, const Smoke::Index method, zval* target, zval \
***sp, zval *&retval) :  MethodCallBase(smoke,method,*sp),
     _target(target),
-    _current_object(0),
+    _o(0),
     _retval(retval)
     {
     if( target == 0 )
@@ -25,8 +25,7 @@
         smokephp_object *o = PHPQt::getSmokePHPObjectFromZval(_target);
         if (o && o->ptr())
         {
-            _current_object = o->mPtr();
-            _current_object_class = o->classId();
+            _o = o;
         }
     }
 
@@ -76,9 +75,14 @@
 	const Smoke::ClassFn fn = _smoke->classes[method().classId].classFn;
 
 	void *ptr = 0;
-	if( _current_object != 0 )
-		ptr = _smoke->cast(_current_object, _current_object_class, method().classId);
+	if (_o != 0) {
+		const Smoke::Class &cl = _smoke->classes[method().classId];
 
+		ptr = _o->smoke()->cast(	(void *) _o->ptr(),
+									_o->classId(),
+									_o->smoke()->idClass(cl.className, true).index );
+	}
+
 	_items = -1;
 
 	(*fn)(method().method, ptr, _stack);
--- trunk/KDE/kdebindings/php/phpqt/src/MethodCall.h #831969:831970
@@ -19,10 +19,9 @@
 
 private:
 	zval* _target;
-	void *_current_object;
-	Smoke::Index _current_object_class;
 	int _items;
 	zval *&_retval;
+	smokephp_object * _o;
 };
 
 #endif /*METHODCALL_H_*/
_______________________________________________
Kde-bindings mailing list
Kde-bindings@kde.org
https://mail.kde.org/mailman/listinfo/kde-bindings


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic