cvs: php4 /ext/com COM.c com.h conversion.c

From: Date: Mon, 20 May 2002 15:35:57 +0000
Subject: cvs: php4 /ext/com COM.c com.h conversion.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-12015@lists.php.net to get a copy of this message
phanto Mon May 20 11:35:57 2002 EDT Modified files: /php4/ext/com COM.c com.h conversion.c Log: integrating wez's patch Index: php4/ext/com/COM.c diff -u php4/ext/com/COM.c:1.71 php4/ext/com/COM.c:1.72 --- php4/ext/com/COM.c:1.71 Sun May 19 21:31:47 2002 +++ php4/ext/com/COM.c Mon May 20 11:35:55 2002 @@ -1427,25 +1427,13 @@ PHPAPI zval *php_COM_object_from_dispatch(IDispatch *disp, zval *val TSRMLS_DC) { comval *obj; - long rid; zval *zobj; ALLOC_COM(obj); - C_DISPATCH(obj) = disp; - php_COM_set(obj, &C_DISPATCH(obj), FALSE TSRMLS_CC); - - /* resource */ - rid = zend_list_insert(obj, IS_COM); - - if (val == NULL) - MAKE_STD_ZVAL(val); - ZVAL_RESOURCE(val, rid); - - /* now we want an object */ MAKE_STD_ZVAL(zobj); - object_init_ex(zobj, &COM_class_entry); - zend_hash_index_update(Z_OBJPROP_P(zobj), 0, &val, sizeof(zval *), NULL); - + php_COM_set(obj, &disp, FALSE TSRMLS_CC); + ZVAL_COM_EX(zobj, obj, val); + return zobj; } Index: php4/ext/com/com.h diff -u php4/ext/com/com.h:1.11 php4/ext/com/com.h:1.12 --- php4/ext/com/com.h:1.11 Fri Apr 26 14:20:44 2002 +++ php4/ext/com/com.h Mon May 20 11:35:56 2002 @@ -24,13 +24,19 @@ END_EXTERN_C() #define ZVAL_COM(z,o) { \ - zval *handle; \ + zval *handle = NULL; \ + ZVAL_COM_EX(z,o,handle) \ + } + +#define ZVAL_COM_EX(z,o,handle) { \ HashTable *properties; \ \ ALLOC_HASHTABLE(properties); \ zend_hash_init(properties, 0, NULL, ZVAL_PTR_DTOR, 0); \ \ - MAKE_STD_ZVAL(handle); \ + if (handle == NULL) { \ + MAKE_STD_ZVAL(handle); \ + } \ ZVAL_LONG(handle, zend_list_insert((o), IS_COM)); \ \ zval_copy_ctor(handle); \ Index: php4/ext/com/conversion.c diff -u php4/ext/com/conversion.c:1.47 php4/ext/com/conversion.c:1.48 --- php4/ext/com/conversion.c:1.47 Sun May 19 21:31:47 2002 +++ php4/ext/com/conversion.c Mon May 20 11:35:56 2002 @@ -56,8 +56,6 @@ case IS_OBJECT: if (!strcmp(Z_OBJCE_P(pval_arg)->name, "VARIANT")) { type = VT_VARIANT|VT_BYREF; - } else if (!strcmp(Z_OBJCE_P(pval_arg)->name, "COM")) { - type = VT_DISPATCH; } else { type = VT_DISPATCH; } @@ -275,8 +273,9 @@ comval_to_variant(pval_arg, var_arg TSRMLS_CC); } else { V_DISPATCH(var_arg) = php_COM_export_object(pval_arg TSRMLS_CC); - if (V_DISPATCH(var_arg)) + if (V_DISPATCH(var_arg)) { V_VT(var_arg) = VT_DISPATCH; + } } if (V_VT(var_arg) != VT_DISPATCH) { VariantInit(var_arg);

« previous php.cvs (#12015) next »