mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
fix EX usage
This commit is contained in:
parent
647ebe6bf2
commit
ea5f6eaf19
3 changed files with 5 additions and 6 deletions
|
@ -464,7 +464,7 @@ HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, char *name,
|
|||
}
|
||||
|
||||
/* the core of COM */
|
||||
int php_com_do_invoke_byref(php_com_dotnet_object *obj, char *name, int namelen,
|
||||
int php_com_do_invoke_byref(php_com_dotnet_object *obj, zend_internal_function *f,
|
||||
WORD flags, VARIANT *v, int nargs, zval *args TSRMLS_DC)
|
||||
{
|
||||
DISPID dispid, altdispid;
|
||||
|
@ -472,20 +472,19 @@ int php_com_do_invoke_byref(php_com_dotnet_object *obj, char *name, int namelen,
|
|||
HRESULT hr;
|
||||
VARIANT *vargs = NULL, *byref_vals = NULL;
|
||||
int i, byref_count = 0, j;
|
||||
zend_internal_function *f = (zend_internal_function*)EX(func);
|
||||
|
||||
/* assumption: that the active function (f) is the function we generated for the engine */
|
||||
if (!f || f->arg_info == NULL) {
|
||||
f = NULL;
|
||||
}
|
||||
|
||||
hr = php_com_get_id_of_name(obj, name, namelen, &dispid TSRMLS_CC);
|
||||
hr = php_com_get_id_of_name(obj, f->function_name->val, f->function_name->len, &dispid TSRMLS_CC);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
char *winerr = NULL;
|
||||
char *msg = NULL;
|
||||
winerr = php_win32_error_to_msg(hr);
|
||||
spprintf(&msg, 0, "Unable to lookup `%s': %s", name, winerr);
|
||||
spprintf(&msg, 0, "Unable to lookup `%s': %s", f->function_name->val, winerr);
|
||||
LocalFree(winerr);
|
||||
php_com_throw_exception(hr, msg TSRMLS_CC);
|
||||
efree(msg);
|
||||
|
|
|
@ -378,7 +378,7 @@ static int com_call_method(zend_string *method, zend_object *object, INTERNAL_FU
|
|||
|
||||
VariantInit(&v);
|
||||
|
||||
if (SUCCESS == php_com_do_invoke_byref(obj, method->val, method->len, DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, nargs, args TSRMLS_CC)) {
|
||||
if (SUCCESS == php_com_do_invoke_byref(obj, (zend_internal_function*)EX(func), DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, nargs, args TSRMLS_CC)) {
|
||||
php_com_zval_from_variant(return_value, &v, obj->code_page TSRMLS_CC);
|
||||
ret = SUCCESS;
|
||||
VariantClear(&v);
|
||||
|
|
|
@ -109,7 +109,7 @@ 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 TSRMLS_DC);
|
||||
int php_com_do_invoke(php_com_dotnet_object *obj, char *name, int namelen,
|
||||
WORD flags, VARIANT *v, int nargs, zval *args, int allow_noarg TSRMLS_DC);
|
||||
int php_com_do_invoke_byref(php_com_dotnet_object *obj, char *name, int namelen,
|
||||
int php_com_do_invoke_byref(php_com_dotnet_object *obj, zend_internal_function *f,
|
||||
WORD flags, VARIANT *v, int nargs, zval *args TSRMLS_DC);
|
||||
|
||||
/* com_wrapper.c */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue