cvs: php4(PHP_4_0_7) /ext/com COM.c variant.h

From: Date: Sat, 08 Sep 2001 21:02:35 +0000
Subject: cvs: php4(PHP_4_0_7) /ext/com COM.c variant.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-7318@lists.php.net to get a copy of this message
phanto Sat Sep 8 17:02:35 2001 EDT Modified files: (Branch: PHP_4_0_7) /php4/ext/com COM.c variant.h Log: MFH Index: php4/ext/com/COM.c diff -u php4/ext/com/COM.c:1.50.2.1 php4/ext/com/COM.c:1.50.2.2 --- php4/ext/com/COM.c:1.50.2.1 Mon Aug 20 04:56:12 2001 +++ php4/ext/com/COM.c Sat Sep 8 17:02:34 2001 @@ -437,7 +437,7 @@ PHP_INI_END() -/* {{{ proto int com_load(string module_name [, string remote_host [, int codepage[, string typelib]]]) +/* {{{ proto int com_load(string module_name [, string remote_host [, int codepage [, string typelib]]]) Loads a COM module */ PHP_FUNCTION(com_load) { @@ -804,9 +804,8 @@ RETURN_FALSE; } - php_variant_to_pval(var_result, return_value, codepage TSRMLS_CC); + RETVAL_VARIANT(var_result); - FREE_VARIANT(var_result); efree(arguments); } /* }}} */ @@ -1049,9 +1048,7 @@ RETURN_FALSE; } - php_variant_to_pval(var_result, return_value, codepage TSRMLS_CC); - - FREE_VARIANT(var_result); + RETVAL_VARIANT(var_result); } /* }}} */ @@ -1082,7 +1079,8 @@ /* }}} */ -/* {{{ proto bool com_load_typelib(string typelib_name[, int case_insensitiv]) */ +/* {{{ proto bool com_load_typelib(string typelib_name [, int case_insensitiv]) + Loads a Typelib */ PHP_FUNCTION(com_load_typelib) { pval *arg_typelib, *arg_cis; Index: php4/ext/com/variant.h diff -u php4/ext/com/variant.h:1.2 php4/ext/com/variant.h:1.2.2.1 --- php4/ext/com/variant.h:1.2 Mon Aug 13 19:39:10 2001 +++ php4/ext/com/variant.h Sat Sep 8 17:02:34 2001 @@ -3,14 +3,29 @@ #if PHP_WIN32 -#define ALLOC_VARIANT(v) (v) = (VARIANT *) emalloc(sizeof(VARIANT)); \ +#define ALLOC_VARIANT(v) (v) = (VARIANT *) emalloc(sizeof(VARIANT)); \ VariantInit(v); -#define FREE_VARIANT(v) VariantClear(v); \ +#define FREE_VARIANT(v) VariantClear(v); \ efree(v); #define IS_VARIANT php_VARIANT_get_le_variant() + +#define ZVAL_VARIANT(z, v) if (V_VT(v) == VT_DISPATCH) { \ + comval *obj; \ + ALLOC_COM(obj); \ + php_COM_set(obj, &V_DISPATCH(v), TRUE TSRMLS_CC); \ + ZVAL_LONG((z), zend_list_insert(obj, IS_COM)); \ + } else { \ + php_variant_to_pval((v), (z), codepage TSRMLS_CC); \ + FREE_VARIANT(v); \ + } + +#define RETVAL_VARIANT(v) ZVAL_VARIANT(return_value, (v)); +#define RETURN_VARIANT(v) RETVAL_VARIANT(v) \ + return; + #endif /* PHP_WIN32 */

« previous php.cvs (#7318) next »