summaryrefslogtreecommitdiff
path: root/ext/rpc/com
diff options
context:
space:
mode:
Diffstat (limited to 'ext/rpc/com')
-rw-r--r--ext/rpc/com/com.c8
-rw-r--r--ext/rpc/com/conversion.c10
-rw-r--r--ext/rpc/com/conversion.h4
-rw-r--r--ext/rpc/com/dispatch.c11
-rw-r--r--ext/rpc/com/variant.c8
5 files changed, 26 insertions, 15 deletions
diff --git a/ext/rpc/com/com.c b/ext/rpc/com/com.c
index 7e53392917..0f807300de 100644
--- a/ext/rpc/com/com.c
+++ b/ext/rpc/com/com.c
@@ -676,6 +676,7 @@ static int com_call(rpc_string method_name, void *data, zval *return_value, int
VARIANT result;
int current_arg, current_variant;
char *ErrString = NULL;
+ TSRMLS_FETCH();
/* if the length of the name is 0, we are dealing with a pointer to a dispid */
assert(method_name.len == 0);
@@ -684,7 +685,7 @@ static int com_call(rpc_string method_name, void *data, zval *return_value, int
for (current_arg = 0; current_arg < num_args; current_arg++) {
current_variant = num_args - current_arg - 1;
- php_zval_to_variant(*args[current_arg], &variant_args[current_variant], C_CODEPAGE((comval *) data));
+ php_zval_to_variant(*args[current_arg], &variant_args[current_variant], C_CODEPAGE((comval *) data) TSRMLS_CC);
}
dispparams.rgvarg = variant_args;
@@ -777,11 +778,12 @@ static int com_set(rpc_string property_name, zval *value, void *data)
DISPPARAMS dispparams;
VARIANT *var;
char *error_message, *ErrString = NULL;
+ TSRMLS_FETCH();
var = (VARIANT *) emalloc(sizeof(VARIANT));
VariantInit(var);
- php_zval_to_variant(value, var, C_CODEPAGE((comval *) data));
+ php_zval_to_variant(value, var, C_CODEPAGE((comval *) data) TSRMLS_CC);
dispparams.rgvarg = var;
dispparams.rgdispidNamedArgs = &mydispid;
dispparams.cArgs = 1;
@@ -897,7 +899,7 @@ static ZEND_FUNCTION(com_indexed_prop_set)
for (current_arg = 2; current_arg < arg_count; current_arg++) {
current_variant = arg_count - current_arg - 1;
php_zval_to_variant(arguments[current_arg], &variant_args[current_variant],
- C_CODEPAGE((comval *)intern->data));
+ C_CODEPAGE((comval *)intern->data) TSRMLS_CC);
}
dispparams.rgvarg = variant_args;
diff --git a/ext/rpc/com/conversion.c b/ext/rpc/com/conversion.c
index acdd6cef40..8cc9e0197a 100644
--- a/ext/rpc/com/conversion.c
+++ b/ext/rpc/com/conversion.c
@@ -48,7 +48,7 @@
static int comval_to_variant(zval *zval_arg, VARIANT *var_arg);
/* implementations */
-PHPAPI void php_zval_to_variant(zval *zval_arg, VARIANT *var_arg, int codepage)
+PHPAPI void php_zval_to_variant(zval *zval_arg, VARIANT *var_arg, int codepage TSRMLS_DC)
{
int type = VT_EMPTY; /* default variant type */
@@ -92,11 +92,11 @@ PHPAPI void php_zval_to_variant(zval *zval_arg, VARIANT *var_arg, int codepage)
break;
}
- php_zval_to_variant_ex(zval_arg, var_arg, type, codepage);
+ php_zval_to_variant_ex(zval_arg, var_arg, type, codepage TSRMLS_CC);
}
-PHPAPI void php_zval_to_variant_ex(zval *zval_arg, VARIANT *var_arg, int type, int codepage)
+PHPAPI void php_zval_to_variant_ex(zval *zval_arg, VARIANT *var_arg, int type, int codepage TSRMLS_DC)
{
OLECHAR *unicode_str = NULL;
@@ -140,9 +140,9 @@ PHPAPI void php_zval_to_variant_ex(zval *zval_arg, VARIANT *var_arg, int type, i
/* Add another value to the safe array */
if (SUCCEEDED(SafeArrayPtrOfIndex( safeArray, &i, &v))) { /* Pointer to output element entry retrieved successfully */
if (type) { /* explicit type */
- php_zval_to_variant_ex(*entry, v, type, codepage); /* Do the required conversion */
+ php_zval_to_variant_ex(*entry, v, type, codepage TSRMLS_CC); /* Do the required conversion */
} else {
- php_zval_to_variant(*entry, v, codepage); /* Do the required conversion */
+ php_zval_to_variant(*entry, v, codepage TSRMLS_CC); /* Do the required conversion */
}
} else {
rpc_error(E_WARNING, "phpArrayToSafeArray() - Unable to retrieve pointer to output element number (%d)", i);
diff --git a/ext/rpc/com/conversion.h b/ext/rpc/com/conversion.h
index 0f99063967..9837c3a2f0 100644
--- a/ext/rpc/com/conversion.h
+++ b/ext/rpc/com/conversion.h
@@ -30,8 +30,8 @@
BEGIN_EXTERN_C()
-ZEND_API void php_zval_to_variant(zval *zval_arg, VARIANT *var_arg, int codepage);
-ZEND_API void php_zval_to_variant_ex(zval *zval_arg, VARIANT *var_arg, int type, int codepage);
+ZEND_API void php_zval_to_variant(zval *zval_arg, VARIANT *var_arg, int codepage TSRMLS_DC);
+ZEND_API void php_zval_to_variant_ex(zval *zval_arg, VARIANT *var_arg, int type, int codepage TSRMLS_DC);
ZEND_API int php_variant_to_zval(VARIANT *var_arg, zval *zval_arg, int codepage);
ZEND_API OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen, int codepage, int persist);
diff --git a/ext/rpc/com/dispatch.c b/ext/rpc/com/dispatch.c
index dab24d63f9..8b32c4e607 100644
--- a/ext/rpc/com/dispatch.c
+++ b/ext/rpc/com/dispatch.c
@@ -103,6 +103,7 @@ static HRESULT STDMETHODCALLTYPE disp_queryinterface(
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject)
{
+ TSRMLS_FETCH();
FETCH_DISP("QueryInterface");
if (IsEqualGUID(&IID_IUnknown, riid) ||
@@ -120,6 +121,7 @@ static HRESULT STDMETHODCALLTYPE disp_queryinterface(
static ULONG STDMETHODCALLTYPE disp_addref(IDispatchEx *This)
{
+ TSRMLS_FETCH();
FETCH_DISP("AddRef");
return InterlockedIncrement(&disp->refcount);
@@ -145,6 +147,7 @@ static HRESULT STDMETHODCALLTYPE disp_gettypeinfocount(
IDispatchEx *This,
/* [out] */ UINT *pctinfo)
{
+ TSRMLS_FETCH();
FETCH_DISP("GetTypeInfoCount");
*pctinfo = 0;
@@ -157,6 +160,7 @@ static HRESULT STDMETHODCALLTYPE disp_gettypeinfo(
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo)
{
+ TSRMLS_FETCH();
FETCH_DISP("GetTypeInfo");
*ppTInfo = NULL;
@@ -328,7 +332,7 @@ static HRESULT STDMETHODCALLTYPE disp_invokeex(
V_VT(pvarRes) = VT_DISPATCH;
V_DISPATCH(pvarRes) = php_COM_export_object(retval);
} else {
- php_zval_to_variant(retval, pvarRes, codepage);
+ php_zval_to_variant(retval, pvarRes, codepage TSRMLS_CC);
}
}
zval_ptr_dtor(&retval);
@@ -348,6 +352,7 @@ static HRESULT STDMETHODCALLTYPE disp_deletememberbyname(
/* [in] */ BSTR bstrName,
/* [in] */ DWORD grfdex)
{
+ TSRMLS_FETCH();
FETCH_DISP("DeleteMemberByName");
return S_FALSE;
@@ -357,6 +362,7 @@ static HRESULT STDMETHODCALLTYPE disp_deletememberbydispid(
IDispatchEx *This,
/* [in] */ DISPID id)
{
+ TSRMLS_FETCH();
FETCH_DISP("DeleteMemberByDispID");
return S_FALSE;
@@ -368,6 +374,7 @@ static HRESULT STDMETHODCALLTYPE disp_getmemberproperties(
/* [in] */ DWORD grfdexFetch,
/* [out] */ DWORD *pgrfdex)
{
+ TSRMLS_FETCH();
FETCH_DISP("GetMemberProperties");
return DISP_E_UNKNOWNNAME;
@@ -399,6 +406,7 @@ static HRESULT STDMETHODCALLTYPE disp_getnextdispid(
/* [out] */ DISPID *pid)
{
ulong next = id+1;
+ TSRMLS_FETCH();
FETCH_DISP("GetNextDispID");
while(!zend_hash_index_exists(disp->dispid_to_name, next))
@@ -415,6 +423,7 @@ static HRESULT STDMETHODCALLTYPE disp_getnamespaceparent(
IDispatchEx *This,
/* [out] */ IUnknown **ppunk)
{
+ TSRMLS_FETCH();
FETCH_DISP("GetNameSpaceParent");
*ppunk = NULL;
diff --git a/ext/rpc/com/variant.c b/ext/rpc/com/variant.c
index 7810049b7a..fbe4bf9f78 100644
--- a/ext/rpc/com/variant.c
+++ b/ext/rpc/com/variant.c
@@ -280,9 +280,9 @@ static void variant_write(zval *object, zval *member, zval *value TSRMLS_DC)
}
if (!strcmp(Z_STRVAL_P(member), "value")) {
- php_zval_to_variant(value, var->var, var->codepage);
+ php_zval_to_variant(value, var->var, var->codepage TSRMLS_CC);
} else if (zend_hash_find(&types, Z_STRVAL_P(member), Z_STRLEN_P(member) + 1, (void **) &type) == SUCCESS) {
- php_zval_to_variant_ex(value, var->var, *type, var->codepage);
+ php_zval_to_variant_ex(value, var->var, *type, var->codepage TSRMLS_CC);
} else {
rpc_error(E_WARNING, "Unknown member.");
}
@@ -314,9 +314,9 @@ ZEND_FUNCTION(variant_load)
if (value) {
if (type) {
- php_zval_to_variant_ex(value, var->var, type, var->codepage);
+ php_zval_to_variant_ex(value, var->var, type, var->codepage TSRMLS_CC);
} else {
- php_zval_to_variant(value, var->var, var->codepage);
+ php_zval_to_variant(value, var->var, var->codepage TSRMLS_CC);
}
}
}