phanto Mon Feb 10 15:58:53 2003 EDT
Modified files:
/php4/ext/rpc/com com.c com_wrapper.c conversion.c variant.c
variant.h
Log:
a bunch of fixes
Index: php4/ext/rpc/com/com.c
diff -u php4/ext/rpc/com/com.c:1.19 php4/ext/rpc/com/com.c:1.20
--- php4/ext/rpc/com/com.c:1.19 Mon Feb 10 15:30:23 2003
+++ php4/ext/rpc/com/com.c Mon Feb 10 15:58:53 2003
@@ -36,13 +36,13 @@
static int com_ctor(rpc_string, void **, int , zval ***);
static int com_dtor(void *);
static int com_describe(rpc_string, void *, char **, unsigned char **);
-static int com_call(rpc_string, void **, zval *, int, zval ***);
-static int com_get(rpc_string, zval *, void **);
-static int com_set(rpc_string, zval *, void **);
-static int com_compare(void **, void **);
-static int com_has_property(rpc_string, void **);
-static int com_unset_property(rpc_string, void **);
-static int com_get_properties(HashTable **, void **);
+static int com_call(rpc_string, void *, zval *, int, zval ***);
+static int com_get(rpc_string, zval *, void *);
+static int com_set(rpc_string, zval *, void *);
+static int com_compare(void *, void *);
+static int com_has_property(rpc_string, void *);
+static int com_unset_property(rpc_string, void *);
+static int com_get_properties(HashTable **, void *);
static PHP_INI_MH(com_typelib_file_change);
@@ -216,13 +216,21 @@
switch (type) {
case CLASS:
{
- OLECHAR *olestr;
+ if (hash.str != NULL) {
+ OLECHAR *olestr;
- StringFromCLSID((CLSID *) hash.str, &olestr);
- name->str = php_OLECHAR_to_char(olestr, &(name->len),
CP_ACP, TRUE);
- CoTaskMemFree(olestr);
+ StringFromCLSID((CLSID *) hash.str, &olestr);
+ name->str = php_OLECHAR_to_char(olestr,
+&(name->len), CP_ACP, TRUE);
+ CoTaskMemFree(olestr);
- return SUCCESS;
+ return SUCCESS;
+ } else {
+ comval *obj = (comval *) data;
+
+ /* try to figure out classname */
+
+ return FAILURE;
+ }
}
case METHOD:
@@ -620,9 +628,8 @@
return retval;
}
-static int com_call(rpc_string method_name, void **data, zval *return_value, int
num_args, zval **args[])
+static int com_call(rpc_string method_name, void *data, zval *return_value, int
+num_args, zval **args[])
{
- DISPID dispid;
DISPPARAMS dispparams;
HRESULT hr;
OLECHAR *funcname = NULL;
@@ -630,17 +637,15 @@
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);
- dispid = *(DISPID*)method_name.str;
variant_args = num_args ? (VARIANT *) emalloc(sizeof(VARIANT) * num_args) :
NULL;
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));
}
dispparams.rgvarg = variant_args;
@@ -650,7 +655,7 @@
VariantInit(&result);
- hr = php_COM_invoke((comval *) *data, dispid,
DISPATCH_METHOD|DISPATCH_PROPERTYGET, &dispparams, &result, &ErrString);
+ hr = php_COM_invoke((comval *) data, *(DISPID*)method_name.str,
+DISPATCH_METHOD|DISPATCH_PROPERTYGET, &dispparams, &result, &ErrString);
for (current_arg=0;current_arg<num_args;current_arg++) {
/* don't release IDispatch pointers as they are used afterwards */
@@ -670,45 +675,26 @@
error_message = php_COM_error_message(hr);
if (ErrString) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING,"Invoke() failed:
%s %s", error_message, ErrString);
+ rpc_error(E_WARNING,"Invoke() failed: %s %s", error_message,
+ErrString);
efree(ErrString);
} else {
- php_error_docref(NULL TSRMLS_CC, E_WARNING,"Invoke() failed:
%s", error_message);
+ rpc_error(E_WARNING,"Invoke() failed: %s", error_message);
}
LocalFree(error_message);
return FAILURE;
}
- RETVAL_VARIANT(&result, C_CODEPAGE((comval *) *data));
+ RETVAL_VARIANT(&result, C_CODEPAGE((comval *) data));
return SUCCESS;
}
-static int com_get(rpc_string property_name, zval *return_value, void **data)
+static int com_get(rpc_string property_name, zval *return_value, void *data)
{
char *ErrString = NULL;
VARIANT *result;
- OLECHAR *propname;
- DISPID dispid;
DISPPARAMS dispparams;
HRESULT hr;
- TSRMLS_FETCH();
-
- /* obtain property handler */
- propname = php_char_to_OLECHAR(property_name.str, property_name.len, CP_ACP,
FALSE);
-
- if (FAILED(hr = php_COM_get_ids_of_names((comval *) *data, propname,
&dispid))) {
- char *error_message;
-
- efree(propname);
- error_message = php_COM_error_message(hr);
- rpc_error(E_WARNING,"Unable to lookup %s: %s", property_name.str,
error_message);
- LocalFree(error_message);
-
- return FAILURE;
- }
-
- efree(propname);
result = (VARIANT *) emalloc(sizeof(VARIANT));
VariantInit(result);
@@ -716,7 +702,7 @@
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
- if (FAILED(hr = php_COM_invoke((comval *) data, dispid, DISPATCH_PROPERTYGET,
&dispparams, result, &ErrString))) {
+ if (FAILED(hr = php_COM_invoke((comval *) data, *((DISPID *)
+property_name.str), DISPATCH_PROPERTYGET, &dispparams, result, &ErrString))) {
char *error_message;
efree(result);
@@ -732,51 +718,43 @@
return FAILURE;
}
- RETVAL_VARIANT(result, C_CODEPAGE((comval *) *data));
+ if (V_VT(result) == VT_DISPATCH) {
+ RETVAL_VARIANT(result, C_CODEPAGE((comval *) data));
+ } else {
+ comval *foo = (comval *) data;
+ php_variant_to_zval(result, return_value, C_CODEPAGE(foo));
+ VariantClear(result);
+ }
+
+ efree(result);
return SUCCESS;
}
-static int com_set(rpc_string property_name, zval *value, void **data)
+static int com_set(rpc_string property_name, zval *value, void *data)
{
HRESULT hr;
- OLECHAR *propname;
- DISPID dispid, mydispid = DISPID_PROPERTYPUT;
+ DISPID mydispid = DISPID_PROPERTYPUT;
DISPPARAMS dispparams;
VARIANT *var;
char *error_message, *ErrString = NULL;
- TSRMLS_FETCH();
-
- /* obtain property handler */
- propname = php_char_to_OLECHAR(property_name.str, property_name.len, CP_ACP,
FALSE);
-
- if (FAILED(hr = php_COM_get_ids_of_names((comval *) *data, propname,
&dispid))) {
- error_message = php_COM_error_message(hr);
- php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unable to lookup %s: %s",
property_name.str, error_message);
- LocalFree(error_message);
- efree(propname);
-
- return FAILURE;
- }
-
- efree(propname);
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));
dispparams.rgvarg = var;
dispparams.rgdispidNamedArgs = &mydispid;
dispparams.cArgs = 1;
dispparams.cNamedArgs = 1;
- if (FAILED(hr = php_COM_invoke((comval *) *data, dispid, DISPATCH_PROPERTYPUT,
&dispparams, NULL, &ErrString))) {
+ if (FAILED(hr = php_COM_invoke((comval *) data, *(DISPID*)property_name.str,
+DISPATCH_PROPERTYPUT, &dispparams, NULL, &ErrString))) {
error_message = php_COM_error_message(hr);
if (ErrString) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING,"PropPut() failed:
%s %s", error_message, ErrString);
+ rpc_error(E_WARNING,"PropPut() failed: %s %s", error_message,
+ErrString);
efree(ErrString);
} else {
- php_error_docref(NULL TSRMLS_CC, E_WARNING,"PropPut() failed:
%s", error_message);
+ rpc_error(E_WARNING,"PropPut() failed: %s", error_message);
}
LocalFree(error_message);
VariantClear(var);
@@ -792,22 +770,22 @@
return SUCCESS;
}
-static int com_compare(void **data1, void **data2)
+static int com_compare(void *data1, void *data2)
{
return SUCCESS;
}
-static int com_has_property(rpc_string property_name, void **data)
+static int com_has_property(rpc_string property_name, void *data)
{
return SUCCESS;
}
-static int com_unset_property(rpc_string property_name, void **data)
+static int com_unset_property(rpc_string property_name, void *data)
{
return SUCCESS;
}
-static int com_get_properties(HashTable **properties, void **data)
+static int com_get_properties(HashTable **properties, void *data)
{
return SUCCESS;
}
@@ -819,13 +797,11 @@
Increases the reference counter on a COM object */
ZEND_FUNCTION(com_addref)
{
- zval *object = getThis();
+ zval *object;
rpc_internal *intern;
- if (object == NULL) {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &object,
com_class_entry);
- } else {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "");
+ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
+&object, com_class_entry) != SUCCESS) {
+ return;
}
if (GET_INTERNAL_EX(intern, object) != SUCCESS) {
@@ -840,13 +816,11 @@
Releases a COM object */
ZEND_FUNCTION(com_release)
{
- zval *object = getThis();
+ zval *object;
rpc_internal *intern;
- if (object == NULL) {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &object,
com_class_entry);
- } else {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "");
+ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
+&object, com_class_entry) != SUCCESS) {
+ return;
}
if (GET_INTERNAL_EX(intern, object) != SUCCESS) {
@@ -859,15 +833,13 @@
PHP_FUNCTION(com_next)
{
- zval *object = getThis();
+ zval *object;
rpc_internal *intern;
comval *obj;
unsigned long count = 1;
- if (object == NULL) {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|l", &object,
com_class_entry, &count);
- } else {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &count);
+ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|l",
+&object, com_class_entry, &count) != SUCCESS) {
+ return;
}
if (GET_INTERNAL_EX(intern, object) != SUCCESS) {
@@ -921,7 +893,7 @@
efree(result);
error_message = php_COM_error_message(hr);
- php_error_docref(NULL TSRMLS_CC,
E_WARNING,"IEnumVariant::Next() failed: %s", error_message);
+ rpc_error(E_WARNING,"IEnumVariant::Next() failed: %s",
+error_message);
efree(error_message);
RETURN_NULL();
@@ -968,14 +940,12 @@
PHP_FUNCTION(com_reset)
{
- zval *object = getThis();
+ zval *object;
rpc_internal *intern;
comval *obj;
- if (object == NULL) {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &object,
com_class_entry);
- } else {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "");
+ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
+&object, com_class_entry) != SUCCESS) {
+ return;
}
if (GET_INTERNAL_EX(intern, object) != SUCCESS) {
@@ -989,7 +959,7 @@
if (FAILED(hr = C_ENUMVARIANT_VT(obj)->Reset(C_ENUMVARIANT(obj)))) {
char *error_message = php_COM_error_message(hr);
- php_error_docref(NULL TSRMLS_CC,
E_WARNING,"IEnumVariant::Next() failed: %s", error_message);
+ rpc_error(E_WARNING,"IEnumVariant::Next() failed: %s",
+error_message);
efree(error_message);
RETURN_FALSE;
@@ -1004,15 +974,13 @@
PHP_FUNCTION(com_skip)
{
- zval *object = getThis();
+ zval *object;
rpc_internal *intern;
comval *obj;
unsigned long count = 1;
- if (object == NULL) {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|l", &object,
com_class_entry, &count);
- } else {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &count);
+ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|l",
+&object, com_class_entry, &count) != SUCCESS) {
+ return;
}
if (GET_INTERNAL_EX(intern, object) != SUCCESS) {
@@ -1026,7 +994,7 @@
if (FAILED(hr = C_ENUMVARIANT_VT(obj)->Skip(C_ENUMVARIANT(obj),
count))) {
char *error_message = php_COM_error_message(hr);
- php_error_docref(NULL TSRMLS_CC,
E_WARNING,"IEnumVariant::Next() failed: %s", error_message);
+ rpc_error(E_WARNING,"IEnumVariant::Next() failed: %s",
+error_message);
efree(error_message);
RETURN_FALSE;
}
@@ -1042,13 +1010,11 @@
Grabs an IEnumVariant */
ZEND_FUNCTION(com_isenum)
{
- zval *object = getThis();
+ zval *object;
rpc_internal *intern;
- if (object == NULL) {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &object,
com_class_entry);
- } else {
- zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "");
+ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
+&object, com_class_entry) != SUCCESS) {
+ return;
}
if (GET_INTERNAL_EX(intern, object) != SUCCESS) {
Index: php4/ext/rpc/com/com_wrapper.c
diff -u php4/ext/rpc/com/com_wrapper.c:1.88 php4/ext/rpc/com/com_wrapper.c:1.89
--- php4/ext/rpc/com/com_wrapper.c:1.88 Mon Feb 10 08:13:27 2003
+++ php4/ext/rpc/com/com_wrapper.c Mon Feb 10 15:58:53 2003
@@ -18,7 +18,7 @@
| Wez Furlong <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: com_wrapper.c,v 1.88 2003/02/10 13:13:27 wez Exp $ */
+/* $Id: com_wrapper.c,v 1.89 2003/02/10 20:58:53 phanto Exp $ */
/*
* This module implements support for COM components that support the IDispatch
* interface. Both local (COM) and remote (DCOM) components can be accessed.
@@ -880,7 +880,7 @@
/* Oops, it already exists. No problem if it
is defined as the same value */
/* Check to see if they are the same */
if (!compare_function(&results, &c.value,
&exists TSRMLS_CC) && INI_INT("com.autoregister_verbose")) {
- php_error_docref(NULL TSRMLS_CC,
E_WARNING, "Type library value %s is already defined and has a different value",
c.name);
+ rpc_error(NULL TSRMLS_CC, E_WARNING,
+"Type library value %s is already defined and has a different value", c.name);
}
free(c.name);
j++;
@@ -912,13 +912,11 @@
PHPAPI zval *php_COM_object_from_dispatch(IDispatch *disp)
{
comval *obj;
- TSRMLS_FETCH();
ALLOC_COM(obj);
php_COM_set(obj, &disp, FALSE);
- return rpc_object_from_data(NULL, com, obj, NULL);
-
+ return rpc_object_from_data(com, obj);
}
#endif
Index: php4/ext/rpc/com/conversion.c
diff -u php4/ext/rpc/com/conversion.c:1.54 php4/ext/rpc/com/conversion.c:1.55
--- php4/ext/rpc/com/conversion.c:1.54 Sat Jan 18 23:09:31 2003
+++ php4/ext/rpc/com/conversion.c Mon Feb 10 15:58:53 2003
@@ -97,7 +97,6 @@
PHPAPI void php_zval_to_variant_ex(zval *zval_arg, VARIANT *var_arg, int type, int
codepage)
{
OLECHAR *unicode_str = NULL;
- TSRMLS_FETCH();
VariantInit(var_arg);
V_VT(var_arg) = type;
@@ -125,7 +124,7 @@
safeArray = SafeArrayCreate(VT_VARIANT, 1, bounds);
if (NULL == safeArray) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to convert
php array to VARIANT array - %s", numberOfElements ? "" : "(Empty input array)");
+ rpc_error(E_WARNING, "Unable to convert php array to VARIANT
+array - %s", numberOfElements ? "" : "(Empty input array)");
ZVAL_FALSE(zval_arg);
} else {
V_ARRAY(var_arg) = safeArray;
@@ -144,14 +143,14 @@
php_zval_to_variant(*entry, v, codepage); /* Do the required
conversion */
}
} else {
- php_error_docref(NULL
TSRMLS_CC, E_WARNING, "phpArrayToSafeArray() - Unable to retrieve pointer to output
element number (%d)", i);
+ rpc_error(E_WARNING,
+"phpArrayToSafeArray() - Unable to retrieve pointer to output element number (%d)",
+i);
}
}
zend_hash_move_forward(ht);
}
SafeArrayUnlock( safeArray);
} else {
- php_error_docref(NULL TSRMLS_CC, E_WARNING,
"phpArrayToSafeArray() - Unable to lock safeArray");
+ rpc_error(E_WARNING, "phpArrayToSafeArray() - Unable
+to lock safeArray");
}
}
} else {
@@ -366,7 +365,7 @@
break;
case VT_VARIANT:
- php_error_docref(NULL TSRMLS_CC, E_WARNING,
"VT_VARIANT is invalid. Use VT_VARIANT|VT_BYREF instead.");
+ rpc_error(E_WARNING, "VT_VARIANT is invalid. Use
+VT_VARIANT|VT_BYREF instead.");
/* break missing intentionally */
case VT_VARIANT|VT_BYREF: {
variantval *var;
@@ -431,7 +430,7 @@
break;
default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING,
"Unsupported variant type: %d (0x%X)", V_VT(var_arg), V_VT(var_arg));
+ rpc_error(E_WARNING, "Unsupported variant type: %d
+(0x%X)", V_VT(var_arg), V_VT(var_arg));
}
if (unicode_str != NULL) {
@@ -446,7 +445,6 @@
/* Existing calls will be unaffected by the change - so it */
/* seemed like the smallest impact on unfamiliar code */
int ret = SUCCESS;
- TSRMLS_FETCH();
INIT_PZVAL(zval_arg);
@@ -465,7 +463,7 @@
/* TODO: Add support for multi-dimensional SafeArrays */
/* For now just validate that the SafeArray has one dimension */
if (1 != (Dims = SafeArrayGetDim(array))) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unsupported:
multi-dimensional (%d) SafeArrays", Dims);
+ rpc_error(E_WARNING, "Unsupported: multi-dimensional (%d)
+SafeArrays", Dims);
ZVAL_NULL(zval_arg);
return FAILURE;
}
@@ -586,7 +584,7 @@
default:
ZVAL_NULL(zval_arg);
ret = FAILURE;
- php_error_docref(NULL TSRMLS_CC,
E_WARNING, "Error converting DECIMAL value to PHP string");
+ rpc_error(E_WARNING, "Error converting
+DECIMAL value to PHP string");
break;
}
}
@@ -689,7 +687,7 @@
char *error_message;
error_message = php_COM_error_message(hr);
- php_error_docref(NULL TSRMLS_CC, E_WARNING,
"Unable to obtain IDispatch interface: %s", error_message);
+ rpc_error(E_WARNING, "Unable to obtain
+IDispatch interface: %s", error_message);
LocalFree(error_message);
V_DISPATCH(var_arg) = NULL;
@@ -698,12 +696,13 @@
/* break missing intentionaly */
case VT_DISPATCH: {
comval *obj;
- TSRMLS_FETCH();
if (V_DISPATCH(var_arg) == NULL) {
ret = FAILURE;
ZVAL_NULL(zval_arg);
} else {
+ TSRMLS_FETCH();
+
ALLOC_COM(obj);
php_COM_set(obj, &V_DISPATCH(var_arg), FALSE);
@@ -754,7 +753,7 @@
break;
default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unsupported
variant type: %d (0x%X)", V_VT(var_arg), V_VT(var_arg));
+ rpc_error(E_WARNING, "Unsupported variant type: %d (0x%X)",
+V_VT(var_arg), V_VT(var_arg));
ZVAL_NULL(zval_arg);
ret = FAILURE;
break;
@@ -767,7 +766,6 @@
{
BOOL error = FALSE;
OLECHAR *unicode_str;
- TSRMLS_FETCH();
if (strlen == -1) {
/* request needed buffersize */
@@ -793,13 +791,13 @@
if (error) {
switch (GetLastError()) {
case ERROR_NO_UNICODE_TRANSLATION:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "No
unicode translation available for the specified string");
+ rpc_error(E_WARNING, "No unicode translation available
+for the specified string");
break;
case ERROR_INSUFFICIENT_BUFFER:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Internal
Error: Insufficient Buffer");
+ rpc_error(E_WARNING, "Internal Error: Insufficient
+Buffer");
break;
default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown
error in php_char_to_OLECHAR()");
+ rpc_error(E_WARNING, "Unknown error in
+php_char_to_OLECHAR()");
}
}
@@ -821,11 +819,10 @@
/* convert string */
length = WideCharToMultiByte(codepage, codepage == CP_UTF8 ? 0 :
WC_COMPOSITECHECK, unicode_str, -1, C_str, reqSize, NULL, NULL) - 1;
} else {
- TSRMLS_FETCH();
C_str = (char *) pemalloc(sizeof(char), persist);
*C_str = 0;
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error in
php_OLECHAR_to_char()");
+ rpc_error(E_WARNING, "Error in php_OLECHAR_to_char()");
}
if (out_length) {
Index: php4/ext/rpc/com/variant.c
diff -u php4/ext/rpc/com/variant.c:1.36 php4/ext/rpc/com/variant.c:1.37
--- php4/ext/rpc/com/variant.c:1.36 Sat Jan 18 19:45:48 2003
+++ php4/ext/rpc/com/variant.c Mon Feb 10 15:58:53 2003
@@ -39,7 +39,7 @@
static void variant_objects_delete(void *, zend_object_handle TSRMLS_DC);
/* object handler */
-static zval* variant_read(zval *, zval *, int TSRMLS_DC);
+static zval* variant_read(zval *, zval * TSRMLS_DC);
static void variant_write(zval *, zval *, zval * TSRMLS_DC);
static union _zend_function* variant_get_constructor(zval * TSRMLS_DC);
static zend_class_entry* variant_get_class_entry(zval * TSRMLS_DC);
@@ -242,7 +242,7 @@
FREE_VARIANT((variantval *)object);
}
-static zval* variant_read(zval *object, zval *member, int type TSRMLS_DC)
+static zval* variant_read(zval *object, zval *member TSRMLS_DC)
{
variantval *var;
zval *result;
@@ -260,7 +260,7 @@
ZVAL_LONG(result, V_VT(var->var));
} else {
ZVAL_FALSE(result);
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown member.");
+ rpc_error(NULL TSRMLS_CC, E_WARNING, "Unknown member.");
}
return result;
@@ -280,7 +280,7 @@
} 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);
} else {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown member.");
+ rpc_error(NULL TSRMLS_CC, E_WARNING, "Unknown member.");
}
}
Index: php4/ext/rpc/com/variant.h
diff -u php4/ext/rpc/com/variant.h:1.7 php4/ext/rpc/com/variant.h:1.8
--- php4/ext/rpc/com/variant.h:1.7 Sun Feb 9 16:40:12 2003
+++ php4/ext/rpc/com/variant.h Mon Feb 10 15:58:53 2003
@@ -36,7 +36,7 @@
comval *obj;
\
ALLOC_COM(obj);
\
php_COM_set(obj, &V_DISPATCH(v), TRUE);
\
- rpc_object_from_data(z, com, obj, NULL);
\
+ rpc_object_from_data_ex(z, com, obj, NULL);
+ \
} else {
\
php_variant_to_zval((v), (z), cp);
\
VariantClear(v);
\
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php