mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Refactor php_com_get_id_of_name()
Use zend_string*
This commit is contained in:
parent
f3ca081379
commit
3dc4863f2b
@ -408,23 +408,19 @@ HRESULT php_com_invoke_helper(php_com_dotnet_object *obj, DISPID id_member,
|
||||
}
|
||||
|
||||
/* map an ID to a name */
|
||||
HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, char *name,
|
||||
size_t namelen, DISPID *dispid)
|
||||
HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, zend_string *name,
|
||||
DISPID *dispid)
|
||||
{
|
||||
OLECHAR *olename;
|
||||
HRESULT hr;
|
||||
zval *tmp;
|
||||
|
||||
if (namelen == -1) {
|
||||
namelen = strlen(name);
|
||||
}
|
||||
|
||||
if (obj->id_of_name_cache && NULL != (tmp = zend_hash_str_find(obj->id_of_name_cache, name, namelen))) {
|
||||
if (obj->id_of_name_cache && NULL != (tmp = zend_hash_find(obj->id_of_name_cache, name))) {
|
||||
*dispid = (DISPID)Z_LVAL_P(tmp);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
olename = php_com_string_to_olestring(name, namelen, obj->code_page);
|
||||
olename = php_com_string_to_olestring(ZSTR_VAL(name), ZSTR_LEN(name), obj->code_page);
|
||||
|
||||
if (obj->typeinfo) {
|
||||
hr = ITypeInfo_GetIDsOfNames(obj->typeinfo, &olename, 1, dispid);
|
||||
@ -451,7 +447,7 @@ HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, char *name,
|
||||
zend_hash_init(obj->id_of_name_cache, 2, NULL, NULL, 0);
|
||||
}
|
||||
ZVAL_LONG(&tmp, *dispid);
|
||||
zend_hash_str_update(obj->id_of_name_cache, name, namelen, &tmp);
|
||||
zend_hash_update(obj->id_of_name_cache, name, &tmp);
|
||||
}
|
||||
|
||||
return hr;
|
||||
@ -472,7 +468,7 @@ int php_com_do_invoke_byref(php_com_dotnet_object *obj, zend_internal_function *
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
hr = php_com_get_id_of_name(obj, f->function_name->val, f->function_name->len, &dispid);
|
||||
hr = php_com_get_id_of_name(obj, f->function_name, &dispid);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
char *msg = NULL;
|
||||
@ -640,7 +636,7 @@ zend_result php_com_do_invoke(php_com_dotnet_object *obj, zend_string *name,
|
||||
HRESULT hr;
|
||||
char *msg = NULL;
|
||||
|
||||
hr = php_com_get_id_of_name(obj, ZSTR_VAL(name), ZSTR_LEN(name), &dispid);
|
||||
hr = php_com_get_id_of_name(obj, name, &dispid);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
char *winerr = php_win32_error_to_msg(hr);
|
||||
|
@ -190,7 +190,7 @@ static int com_property_exists(zend_object *object, zend_string *member, int che
|
||||
obj = (php_com_dotnet_object*) object;
|
||||
|
||||
if (V_VT(&obj->v) == VT_DISPATCH) {
|
||||
if (SUCCEEDED(php_com_get_id_of_name(obj, ZSTR_VAL(member), ZSTR_LEN(member), &dispid))) {
|
||||
if (SUCCEEDED(php_com_get_id_of_name(obj, member, &dispid))) {
|
||||
/* TODO: distinguish between property and method! */
|
||||
return 1;
|
||||
}
|
||||
@ -298,7 +298,7 @@ static zend_function *com_method_get(zend_object **object_ptr, zend_string *name
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (FAILED(php_com_get_id_of_name(obj, name->val, name->len, &dummy))) {
|
||||
if (FAILED(php_com_get_id_of_name(obj, name, &dummy))) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -93,8 +93,8 @@ PHP_METHOD(com, __construct);
|
||||
|
||||
HRESULT php_com_invoke_helper(php_com_dotnet_object *obj, DISPID id_member,
|
||||
WORD flags, DISPPARAMS *disp_params, VARIANT *v, int silent, int allow_noarg);
|
||||
HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, char *name,
|
||||
size_t namelen, DISPID *dispid);
|
||||
HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, zend_string *name,
|
||||
DISPID *dispid);
|
||||
int php_com_do_invoke_by_id(php_com_dotnet_object *obj, DISPID dispid,
|
||||
WORD flags, VARIANT *v, int nargs, zval *args, int silent, int allow_noarg);
|
||||
zend_result php_com_do_invoke(php_com_dotnet_object *obj, zend_string *name,
|
||||
|
Loading…
Reference in New Issue
Block a user