From: Harald Radi Date: Thu, 20 Feb 2003 11:34:26 +0000 (+0000) Subject: fixing bugs #22295, #22218 and #22162 (duplicates) X-Git-Tag: php-4.3.2RC1~159 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=41f25857bb6f71c4804b43480bdefb8cf2848753;p=php fixing bugs #22295, #22218 and #22162 (duplicates) --- diff --git a/ext/com/variant.h b/ext/com/variant.h index 66b4605613..ba052c4a19 100644 --- a/ext/com/variant.h +++ b/ext/com/variant.h @@ -12,15 +12,19 @@ #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_COM((z), obj); \ - efree(v); \ - } else { \ - php_variant_to_pval((v), (z), codepage TSRMLS_CC); \ - FREE_VARIANT(v); \ +#define ZVAL_VARIANT(z, v) if (V_VT(v) == VT_DISPATCH) { \ + if (V_DISPATCH(v)) { \ + comval *obj; \ + ALLOC_COM(obj); \ + php_COM_set(obj, &V_DISPATCH(v), TRUE TSRMLS_CC); \ + ZVAL_COM((z), obj); \ + efree(v); \ + } else { \ + ZVAL_NULL(z); \ + } \ + } else { \ + php_variant_to_pval((v), (z), codepage TSRMLS_CC); \ + FREE_VARIANT(v); \ } #define RETVAL_VARIANT(v) ZVAL_VARIANT(return_value, (v));