cvs: php4 /ext/com COM.c
| From: | Zeev Suraski | Date: | Mon, 09 Oct 2000 11:48:14 +0000 |
| Subject: | cvs: php4 /ext/com COM.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-1957@lists.php.net to get a copy of this message | ||
zeev Mon Oct 9 04:48:14 2000 EDT
Modified files:
/php4/ext/com COM.c
Log:
Fix bug #6447
Index: php4/ext/com/COM.c
diff -u php4/ext/com/COM.c:1.38 php4/ext/com/COM.c:1.39
--- php4/ext/com/COM.c:1.38 Sat Aug 26 05:53:12 2000
+++ php4/ext/com/COM.c Mon Oct 9 04:48:14 2000
@@ -697,6 +697,13 @@
hr = i_dispatch->lpVtbl->Invoke(i_dispatch, dispid, &IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT,
&dispparams, NULL, NULL, 0);
+ if (FAILED(hr)) {
+ error_message = php_COM_error_message(hr);
+ php_error(E_WARNING,"PropPut() failed: %s\n", error_message);
+ LocalFree(error_message);
+ efree(propname);
+ RETURN_FALSE;
+ }
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
@@ -705,15 +712,13 @@
LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET,
&dispparams, &var_result, NULL, 0);
- if (FAILED(hr)) {
- error_message = php_COM_error_message(hr);
- php_error(E_WARNING,"PropPut() failed: %s\n", error_message);
- LocalFree(error_message);
- efree(propname);
- RETURN_FALSE;
- }
- php_variant_to_pval(&var_result, return_value, 0);
+ if (SUCCEEDED(hr)) {
+ php_variant_to_pval(&var_result, return_value, 0);
+ } else {
+ *return_value = *value;
+ zval_copy_ctor(return_value);
+ }
efree(propname);
}