cvs: php4(PHP_4_2_0) /ext/com COM.c conversion.c

From: Date: Thu, 18 Apr 2002 10:15:34 +0000
Subject: cvs: php4(PHP_4_2_0) /ext/com COM.c conversion.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-11189@lists.php.net to get a copy of this message
phanto Thu Apr 18 06:15:34 2002 EDT Modified files: (Branch: PHP_4_2_0) /php4/ext/com COM.c conversion.c Log: MFH Index: php4/ext/com/COM.c diff -u php4/ext/com/COM.c:1.64.2.1 php4/ext/com/COM.c:1.64.2.2 --- php4/ext/com/COM.c:1.64.2.1 Fri Mar 15 15:54:34 2002 +++ php4/ext/com/COM.c Thu Apr 18 06:15:30 2002 @@ -133,18 +133,20 @@ if (FAILED(hr)) { switch (hr) { case DISP_E_EXCEPTION: { - int srclen=0; - char *src=estrdup(""); - int desclen=0; - char *desc=estrdup(""); + char *src=estrdup("Unavailable"); + int srclen=strlen(src); + char *desc=estrdup("Unavailable"); + int desclen=strlen(desc); if (ExceptInfo.bstrSource) { + efree(src); src = php_OLECHAR_to_char(ExceptInfo.bstrSource, &srclen, codepage TSRMLS_CC); SysFreeString(ExceptInfo.bstrSource); } if (ExceptInfo.bstrDescription) { + efree(desc); desc = php_OLECHAR_to_char(ExceptInfo.bstrDescription, &desclen, codepage TSRMLS_CC); SysFreeString(ExceptInfo.bstrDescription); } @@ -159,6 +161,7 @@ SysFreeString(ExceptInfo.bstrHelpFile); } } + break; case DISP_E_PARAMNOTFOUND: case DISP_E_TYPEMISMATCH: *ErrString = pemalloc(25, 1); Index: php4/ext/com/conversion.c diff -u php4/ext/com/conversion.c:1.42 php4/ext/com/conversion.c:1.42.2.1 --- php4/ext/com/conversion.c:1.42 Tue Dec 11 10:28:55 2001 +++ php4/ext/com/conversion.c Thu Apr 18 06:15:31 2002 @@ -380,8 +380,7 @@ /* should be, but isn't :) - if (V_VT(var_arg) != (VT_VARIANT|VT_BYREF)) - { + if (V_VT(var_arg) != (VT_VARIANT|VT_BYREF)) { VariantInit(var_arg); } */ @@ -631,14 +630,22 @@ break; case VT_BSTR: + Z_TYPE_P(pval_arg) = IS_STRING; + if (V_ISBYREF(var_arg)) { - Z_STRVAL_P(pval_arg) = php_OLECHAR_to_char(*V_BSTRREF(var_arg), &Z_STRLEN_P(pval_arg), codepage TSRMLS_CC); + if (*V_BSTR(var_arg)) { + Z_STRVAL_P(pval_arg) = php_OLECHAR_to_char(*V_BSTRREF(var_arg), &Z_STRLEN_P(pval_arg), codepage TSRMLS_CC); + } else { + ZVAL_NULL(pval_arg); + } efree(V_BSTRREF(var_arg)); } else { - Z_STRVAL_P(pval_arg) = php_OLECHAR_to_char(V_BSTR(var_arg), &Z_STRLEN_P(pval_arg), codepage TSRMLS_CC); + if (V_BSTR(var_arg)) { + Z_STRVAL_P(pval_arg) = php_OLECHAR_to_char(V_BSTR(var_arg), &Z_STRLEN_P(pval_arg), codepage TSRMLS_CC); + } else { + ZVAL_NULL(pval_arg); + } } - - Z_TYPE_P(pval_arg) = IS_STRING; break; case VT_DATE: { @@ -679,8 +686,7 @@ hr = V_UNKNOWN(var_arg)->lpVtbl->QueryInterface(var_arg->punkVal, &IID_IDispatch, &V_DISPATCH(var_arg)); - if (FAILED(hr)) - { + if (FAILED(hr)) { char *error_message; error_message = php_COM_error_message(hr TSRMLS_CC); @@ -844,4 +850,4 @@ } } -#endif /* PHP_WIN32 */ \ No newline at end of file +#endif /* PHP_WIN32 */

« previous php.cvs (#11189) next »