summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald Radi <phanto@php.net>2001-07-26 13:20:44 +0000
committerHarald Radi <phanto@php.net>2001-07-26 13:20:44 +0000
commitbd21994bed159fbb87763aee1063396fab558d1d (patch)
treeddbc524f3fc3600267e54f756b398a5bbae11b4b
parent89ee53a211254d868576625f9abfd60514100c0a (diff)
downloadphp-git-bd21994bed159fbb87763aee1063396fab558d1d.tar.gz
fixed a few memory issues
-rw-r--r--ext/com/COM.c3
-rw-r--r--ext/com/conversion.c11
-rw-r--r--ext/rpc/com/com_wrapper.c3
-rw-r--r--ext/rpc/com/conversion.c11
4 files changed, 10 insertions, 18 deletions
diff --git a/ext/com/COM.c b/ext/com/COM.c
index 3431bc5754..7ffc9fffdd 100644
--- a/ext/com/COM.c
+++ b/ext/com/COM.c
@@ -1452,7 +1452,8 @@ PHPAPI void php_COM_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_pro
php_variant_to_pval(var_result, return_value, 0, codepage);
}
- FREE_VARIANT(var_result);
+// FREE_VARIANT(var_result);
+ efree(var_result);
efree(arguments);
}
diff --git a/ext/com/conversion.c b/ext/com/conversion.c
index 5d3325cafc..1bf6ed86ee 100644
--- a/ext/com/conversion.c
+++ b/ext/com/conversion.c
@@ -529,11 +529,11 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
hr = SafeArrayGetElement(array, indices, (VOID *) &(vv.lVal));
}
if (FAILED(hr))
- {
+ {
/* Failure to retieve an element probably means the array is sparse */
/* So leave the php array sparse too */
continue;
- }
+ }
/* Create an element to be added to the array */
ALLOC_ZVAL(element);
/* Call ourself again to handle the base type conversion */
@@ -560,10 +560,7 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
add_index_zval(pval_arg, ii, element);
}
}
- SafeArrayUnlock(array);
- /* Clean up the SafeArray since that is our responsibility */
- SafeArrayDestroyData(array);
- SafeArrayDestroyDescriptor(array);
+ SafeArrayUnlock(array);
}
else switch(var_arg->vt & ~VT_BYREF)
{
@@ -683,13 +680,11 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
if(V_ISBYREF(var_arg))
{
Z_STRVAL_P(pval_arg) = php_OLECHAR_to_char(*V_BSTRREF(var_arg), &Z_STRLEN_P(pval_arg), persistent, codepage);
- SysFreeString(*V_BSTRREF(var_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), persistent, codepage);
- SysFreeString(V_BSTR(var_arg));
}
Z_TYPE_P(pval_arg) = IS_STRING;
diff --git a/ext/rpc/com/com_wrapper.c b/ext/rpc/com/com_wrapper.c
index 3431bc5754..7ffc9fffdd 100644
--- a/ext/rpc/com/com_wrapper.c
+++ b/ext/rpc/com/com_wrapper.c
@@ -1452,7 +1452,8 @@ PHPAPI void php_COM_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_pro
php_variant_to_pval(var_result, return_value, 0, codepage);
}
- FREE_VARIANT(var_result);
+// FREE_VARIANT(var_result);
+ efree(var_result);
efree(arguments);
}
diff --git a/ext/rpc/com/conversion.c b/ext/rpc/com/conversion.c
index 5d3325cafc..1bf6ed86ee 100644
--- a/ext/rpc/com/conversion.c
+++ b/ext/rpc/com/conversion.c
@@ -529,11 +529,11 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
hr = SafeArrayGetElement(array, indices, (VOID *) &(vv.lVal));
}
if (FAILED(hr))
- {
+ {
/* Failure to retieve an element probably means the array is sparse */
/* So leave the php array sparse too */
continue;
- }
+ }
/* Create an element to be added to the array */
ALLOC_ZVAL(element);
/* Call ourself again to handle the base type conversion */
@@ -560,10 +560,7 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
add_index_zval(pval_arg, ii, element);
}
}
- SafeArrayUnlock(array);
- /* Clean up the SafeArray since that is our responsibility */
- SafeArrayDestroyData(array);
- SafeArrayDestroyDescriptor(array);
+ SafeArrayUnlock(array);
}
else switch(var_arg->vt & ~VT_BYREF)
{
@@ -683,13 +680,11 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
if(V_ISBYREF(var_arg))
{
Z_STRVAL_P(pval_arg) = php_OLECHAR_to_char(*V_BSTRREF(var_arg), &Z_STRLEN_P(pval_arg), persistent, codepage);
- SysFreeString(*V_BSTRREF(var_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), persistent, codepage);
- SysFreeString(V_BSTR(var_arg));
}
Z_TYPE_P(pval_arg) = IS_STRING;