@@ -499,11 +499,11 @@ static void generate_dispids(php_dispatchex *disp)
499499 }
500500}
501501
502- static php_dispatchex * disp_constructor (zval * object )
502+ static php_dispatchex * disp_constructor (zend_object * object )
503503{
504504 php_dispatchex * disp = (php_dispatchex * )CoTaskMemAlloc (sizeof (php_dispatchex ));
505505
506- trace ("constructing a COM wrapper for PHP object %p (%s)\n" , object , ZSTR_VAL (Z_OBJCE_P ( object ) -> name ));
506+ trace ("constructing a COM wrapper for PHP object %p (%s)\n" , object , ZSTR_VAL (object -> ce -> name ));
507507
508508 if (disp == NULL )
509509 return NULL ;
@@ -516,7 +516,7 @@ static php_dispatchex *disp_constructor(zval *object)
516516
517517
518518 if (object ) {
519- ZVAL_COPY (& disp -> object , object );
519+ ZVAL_OBJ_COPY (& disp -> object , object );
520520 } else {
521521 ZVAL_UNDEF (& disp -> object );
522522 }
@@ -536,7 +536,7 @@ static void disp_destructor(php_dispatchex *disp)
536536 CoTaskMemFree (disp );
537537}
538538
539- PHP_COM_DOTNET_API IDispatch * php_com_wrapper_export_as_sink (zval * val , GUID * sinkid ,
539+ PHP_COM_DOTNET_API IDispatch * php_com_wrapper_export_as_sink (zend_object * val , GUID * sinkid ,
540540 HashTable * id_to_name )
541541{
542542 php_dispatchex * disp = disp_constructor (val );
@@ -572,17 +572,13 @@ PHP_COM_DOTNET_API IDispatch *php_com_wrapper_export_as_sink(zval *val, GUID *si
572572 return (IDispatch * )disp ;
573573}
574574
575- PHP_COM_DOTNET_API IDispatch * php_com_wrapper_export (zval * val )
575+ PHP_COM_DOTNET_API IDispatch * php_com_wrapper_export (zend_object * val )
576576{
577577 php_dispatchex * disp = NULL ;
578578
579- if (Z_TYPE_P (val ) != IS_OBJECT ) {
580- return NULL ;
581- }
582-
583579 if (php_com_is_valid_object (val )) {
584580 /* pass back its IDispatch directly */
585- php_com_dotnet_object * obj = CDNO_FETCH ( val ) ;
581+ php_com_dotnet_object * obj = ( php_com_dotnet_object * ) val ;
586582
587583 if (obj == NULL )
588584 return NULL ;
0 commit comments