diff options
author | Anatol Belski <ab@php.net> | 2014-08-19 22:23:03 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2014-08-19 22:23:03 +0200 |
commit | 074172061e5d832b628b24afa81fbc3a0962029e (patch) | |
tree | 5853b7ce7c3771d24cb9d9323291542f8bcf5b37 | |
parent | 919b996527c0d488db67cc5f1d2e18e902bcadde (diff) | |
download | php-git-074172061e5d832b628b24afa81fbc3a0962029e.tar.gz |
ported ext/com_dotnet
-rw-r--r-- | ext/com_dotnet/com_com.c | 12 | ||||
-rw-r--r-- | ext/com_dotnet/com_extension.c | 16 | ||||
-rw-r--r-- | ext/com_dotnet/com_iterator.c | 4 | ||||
-rw-r--r-- | ext/com_dotnet/com_misc.c | 2 | ||||
-rw-r--r-- | ext/com_dotnet/com_persist.c | 6 | ||||
-rw-r--r-- | ext/com_dotnet/com_saproxy.c | 2 | ||||
-rw-r--r-- | ext/com_dotnet/com_variant.c | 52 | ||||
-rw-r--r-- | ext/com_dotnet/com_wrapper.c | 6 | ||||
-rw-r--r-- | ext/com_dotnet/php_com_dotnet_internal.h | 2 |
9 files changed, 55 insertions, 47 deletions
diff --git a/ext/com_dotnet/com_com.c b/ext/com_dotnet/com_com.c index 7f1cadabde..00b62bb2d2 100644 --- a/ext/com_dotnet/com_com.c +++ b/ext/com_dotnet/com_com.c @@ -57,11 +57,11 @@ PHP_FUNCTION(com_create_instance) obj = CDNO_FETCH(object); if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, - ZEND_NUM_ARGS() TSRMLS_CC, "s|s!ls", + ZEND_NUM_ARGS() TSRMLS_CC, "s|s!is", &module_name, &module_name_len, &server_name, &server_name_len, &obj->code_page, &typelib_name, &typelib_name_len) && FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, - ZEND_NUM_ARGS() TSRMLS_CC, "sa|ls", + ZEND_NUM_ARGS() TSRMLS_CC, "sa|is", &module_name, &module_name_len, &server_params, &obj->code_page, &typelib_name, &typelib_name_len)) { @@ -289,14 +289,14 @@ PHP_FUNCTION(com_get_active_object) CLSID clsid; char *module_name; int module_name_len; - long code_page = COMG(code_page); + php_int_t code_page = COMG(code_page); IUnknown *unk = NULL; IDispatch *obj = NULL; HRESULT res; OLECHAR *module = NULL; php_com_initialize(TSRMLS_C); - if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", + if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|i", &module_name, &module_name_len, &code_page)) { php_com_throw_exception(E_INVALIDARG, "Invalid arguments!" TSRMLS_CC); return; @@ -784,11 +784,11 @@ PHP_FUNCTION(com_print_typeinfo) Process COM messages, sleeping for up to timeoutms milliseconds */ PHP_FUNCTION(com_message_pump) { - long timeoutms = 0; + php_int_t timeoutms = 0; MSG msg; DWORD result; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &timeoutms) == FAILURE) + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|i", &timeoutms) == FAILURE) RETURN_FALSE; php_com_initialize(TSRMLS_C); diff --git a/ext/com_dotnet/com_extension.c b/ext/com_dotnet/com_extension.c index ce891ebf3e..db9f5b21f9 100644 --- a/ext/com_dotnet/com_extension.c +++ b/ext/com_dotnet/com_extension.c @@ -22,6 +22,8 @@ #include "config.h" #endif +#include <intsafe.h> + #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" @@ -382,6 +384,12 @@ PHP_MINIT_FUNCTION(com_dotnet) REGISTER_INI_ENTRIES(); #define COM_CONST(x) REGISTER_INT_CONSTANT(#x, x, CONST_CS|CONST_PERSISTENT) + +#define COM_ERR_CONST(x) { \ + php_int_t __tmp; \ + ULongToUIntPtr(x, &__tmp); \ + REGISTER_INT_CONSTANT(#x, __tmp, CONST_CS|CONST_PERSISTENT); \ +} COM_CONST(CLSCTX_INPROC_SERVER); COM_CONST(CLSCTX_INPROC_HANDLER); @@ -441,10 +449,10 @@ PHP_MINIT_FUNCTION(com_dotnet) #ifdef NORM_IGNOREKASHIDA COM_CONST(NORM_IGNOREKASHIDA); #endif - COM_CONST(DISP_E_DIVBYZERO); - COM_CONST(DISP_E_OVERFLOW); - COM_CONST(DISP_E_BADINDEX); - COM_CONST(MK_E_UNAVAILABLE); + COM_ERR_CONST(DISP_E_DIVBYZERO); + COM_ERR_CONST(DISP_E_OVERFLOW); + COM_ERR_CONST(DISP_E_BADINDEX); + COM_ERR_CONST(MK_E_UNAVAILABLE); return SUCCESS; } diff --git a/ext/com_dotnet/com_iterator.c b/ext/com_dotnet/com_iterator.c index 80323a8797..d22bf1efde 100644 --- a/ext/com_dotnet/com_iterator.c +++ b/ext/com_dotnet/com_iterator.c @@ -32,7 +32,7 @@ struct php_com_iterator { zend_object_iterator iter; IEnumVARIANT *ev; - ulong key; + php_uint_t key; VARIANT v; /* cached element */ int code_page; VARIANT safe_array; @@ -75,7 +75,7 @@ static void com_iter_get_key(zend_object_iterator *iter, zval *key TSRMLS_DC) { struct php_com_iterator *I = (struct php_com_iterator*)Z_PTR(iter->data); - if (I->key == (ulong)-1) { + if (I->key == (php_uint_t)-1) { ZVAL_NULL(key); } else { ZVAL_INT(key, I->key); diff --git a/ext/com_dotnet/com_misc.c b/ext/com_dotnet/com_misc.c index 5cd6808b36..294ff26fe7 100644 --- a/ext/com_dotnet/com_misc.c +++ b/ext/com_dotnet/com_misc.c @@ -36,7 +36,7 @@ void php_com_throw_exception(HRESULT code, char *message TSRMLS_DC) message = php_win32_error_to_msg(code); free_msg = 1; } - zend_throw_exception(php_com_exception_class_entry, message, (long)code TSRMLS_CC); + zend_throw_exception(php_com_exception_class_entry, message, (php_int_t)code TSRMLS_CC); if (free_msg) { LocalFree(message); } diff --git a/ext/com_dotnet/com_persist.c b/ext/com_dotnet/com_persist.c index 4a85a7c8df..2a2657ae3c 100644 --- a/ext/com_dotnet/com_persist.c +++ b/ext/com_dotnet/com_persist.c @@ -439,7 +439,7 @@ CPH_METHOD(LoadFromFile) HRESULT res; char *filename, *fullpath; int filename_len; - long flags = 0; + php_int_t flags = 0; OLECHAR *olefilename; CPH_FETCH(); @@ -448,7 +448,7 @@ CPH_METHOD(LoadFromFile) res = get_persist_file(helper); if (helper->ipf) { - if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|l", + if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|i", &filename, &filename_len, &flags)) { php_com_throw_exception(E_INVALIDARG, "Invalid arguments" TSRMLS_CC); return; @@ -506,7 +506,7 @@ CPH_METHOD(GetMaxStreamSize) php_com_throw_exception(res, NULL TSRMLS_CC); } else { /* TODO: handle 64 bit properly */ - RETURN_INT((LONG)size.QuadPart); + RETURN_INT((php_int_t)size.QuadPart); } } /* }}} */ diff --git a/ext/com_dotnet/com_saproxy.c b/ext/com_dotnet/com_saproxy.c index d8aabeeca0..886bd808f9 100644 --- a/ext/com_dotnet/com_saproxy.c +++ b/ext/com_dotnet/com_saproxy.c @@ -353,7 +353,7 @@ static int saproxy_object_cast(zval *readobj, zval *writeobj, int type TSRMLS_DC return FAILURE; } -static int saproxy_count_elements(zval *object, long *count TSRMLS_DC) +static int saproxy_count_elements(zval *object, php_int_t *count TSRMLS_DC) { php_com_saproxy *proxy = SA_FETCH(object); LONG ubound, lbound; diff --git a/ext/com_dotnet/com_variant.c b/ext/com_dotnet/com_variant.c index ee013ee0e7..27583e5dc9 100644 --- a/ext/com_dotnet/com_variant.c +++ b/ext/com_dotnet/com_variant.c @@ -39,8 +39,8 @@ static void safe_array_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC) HashPosition pos; int keytype; zend_string *strindex; - long intindex = -1; - long max_index = 0; + php_int_t intindex = -1; + php_int_t max_index = 0; VARIANT *va; zval *item; @@ -187,28 +187,28 @@ PHP_COM_DOTNET_API int php_com_zval_from_variant(zval *z, VARIANT *v, int codepa ZVAL_NULL(z); break; case VT_UI1: - ZVAL_INT(z, (long)V_UI1(v)); + ZVAL_INT(z, (php_int_t)V_UI1(v)); break; case VT_I1: - ZVAL_INT(z, (long)V_I1(v)); + ZVAL_INT(z, (php_int_t)V_I1(v)); break; case VT_UI2: - ZVAL_INT(z, (long)V_UI2(v)); + ZVAL_INT(z, (php_int_t)V_UI2(v)); break; case VT_I2: - ZVAL_INT(z, (long)V_I2(v)); + ZVAL_INT(z, (php_int_t)V_I2(v)); break; case VT_UI4: /* TODO: promote to double if large? */ - ZVAL_INT(z, (long)V_UI4(v)); + ZVAL_INT(z, (php_int_t)V_UI4(v)); break; case VT_I4: - ZVAL_INT(z, (long)V_I4(v)); + ZVAL_INT(z, (php_int_t)V_I4(v)); break; case VT_INT: ZVAL_INT(z, V_INT(v)); break; case VT_UINT: /* TODO: promote to double if large? */ - ZVAL_INT(z, (long)V_UINT(v)); + ZVAL_INT(z, (php_int_t)V_UINT(v)); break; case VT_R4: ZVAL_DOUBLE(z, (double)V_R4(v)); @@ -406,8 +406,8 @@ PHP_COM_DOTNET_API int php_com_copy_variant(VARIANT *dstvar, VARIANT *srcvar TSR /* {{{ com_variant_create_instance - ctor for new VARIANT() */ PHP_FUNCTION(com_variant_create_instance) { - /* VARTYPE == unsigned short */ long vt = VT_EMPTY; - long codepage = CP_ACP; + /* VARTYPE == unsigned short */ php_int_t vt = VT_EMPTY; + php_int_t codepage = CP_ACP; zval *object = getThis(); php_com_dotnet_object *obj; zval *zvalue = NULL; @@ -421,7 +421,7 @@ PHP_FUNCTION(com_variant_create_instance) obj = CDNO_FETCH(object); if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - "z!|ll", &zvalue, &vt, &codepage)) { + "z!|ii", &zvalue, &vt, &codepage)) { php_com_throw_exception(E_INVALIDARG, "Invalid arguments" TSRMLS_CC); return; } @@ -444,7 +444,7 @@ PHP_FUNCTION(com_variant_create_instance) but will probably fail (original behavior) */ if ((vt & VT_ARRAY) && (V_VT(&obj->v) & VT_ARRAY)) { - long orig_vt = vt; + php_int_t orig_vt = vt; vt &= ~VT_ARRAY; if (vt) { @@ -832,7 +832,7 @@ PHP_FUNCTION(variant_round) zval *zleft = NULL; php_com_dotnet_object *obj; int codepage = CP_ACP; - long decimals = 0; + php_int_t decimals = 0; VariantInit(&left_val); VariantInit(&vres); @@ -867,8 +867,8 @@ PHP_FUNCTION(variant_cmp) zval *zleft = NULL, *zright = NULL; php_com_dotnet_object *obj; int codepage = CP_ACP; - long lcid = LOCALE_SYSTEM_DEFAULT; - long flags = 0; + php_int_t lcid = LOCALE_SYSTEM_DEFAULT; + php_int_t flags = 0; /* it is safe to ignore the warning for this line; see the comments in com_handlers.c */ STDAPI VarCmp(LPVARIANT pvarLeft, LPVARIANT pvarRight, LCID lcid, DWORD flags); @@ -876,28 +876,28 @@ PHP_FUNCTION(variant_cmp) VariantInit(&right_val); if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, - ZEND_NUM_ARGS() TSRMLS_CC, "OO|ll", &zleft, php_com_variant_class_entry, + ZEND_NUM_ARGS() TSRMLS_CC, "OO|ii", &zleft, php_com_variant_class_entry, &zright, php_com_variant_class_entry, &lcid, &flags)) { obj = CDNO_FETCH(zleft); vleft = &obj->v; obj = CDNO_FETCH(zright); vright = &obj->v; } else if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, - ZEND_NUM_ARGS() TSRMLS_CC, "Oz!|ll", &zleft, php_com_variant_class_entry, + ZEND_NUM_ARGS() TSRMLS_CC, "Oz!|ii", &zleft, php_com_variant_class_entry, &zright, &lcid, &flags)) { obj = CDNO_FETCH(zleft); vleft = &obj->v; vright = &right_val; php_com_variant_from_zval(vright, zright, codepage TSRMLS_CC); } else if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, - ZEND_NUM_ARGS() TSRMLS_CC, "z!O|ll", &zleft, &zright, php_com_variant_class_entry, + ZEND_NUM_ARGS() TSRMLS_CC, "z!O|ii", &zleft, &zright, php_com_variant_class_entry, &lcid, &flags)) { obj = CDNO_FETCH(zright); vright = &obj->v; vleft = &left_val; php_com_variant_from_zval(vleft, zleft, codepage TSRMLS_CC); } else if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - "z!z!|ll", &zleft, &zright, &lcid, &flags)) { + "z!z!|ii", &zleft, &zright, &lcid, &flags)) { vleft = &left_val; php_com_variant_from_zval(vleft, zleft, codepage TSRMLS_CC); @@ -959,13 +959,13 @@ PHP_FUNCTION(variant_date_to_timestamp) Returns a variant date representation of a unix timestamp */ PHP_FUNCTION(variant_date_from_timestamp) { - long timestamp; + php_int_t timestamp; time_t ttstamp; SYSTEMTIME systime; struct tm *tmv; VARIANT res; - if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", + if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", ×tamp)) { return; } @@ -1020,11 +1020,11 @@ PHP_FUNCTION(variant_set_type) { zval *zobj; php_com_dotnet_object *obj; - /* VARTYPE == unsigned short */ long vt; + /* VARTYPE == unsigned short */ php_int_t vt; HRESULT res; if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - "Ol", &zobj, php_com_variant_class_entry, &vt)) { + "Oi", &zobj, php_com_variant_class_entry, &vt)) { return; } obj = CDNO_FETCH(zobj); @@ -1055,12 +1055,12 @@ PHP_FUNCTION(variant_cast) { zval *zobj; php_com_dotnet_object *obj; - /* VARTYPE == unsigned short */ long vt; + /* VARTYPE == unsigned short */ php_int_t vt; VARIANT vres; HRESULT res; if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - "Ol", &zobj, php_com_variant_class_entry, &vt)) { + "Oi", &zobj, php_com_variant_class_entry, &vt)) { return; } obj = CDNO_FETCH(zobj); diff --git a/ext/com_dotnet/com_wrapper.c b/ext/com_dotnet/com_wrapper.c index 45eab34a69..27ea773748 100644 --- a/ext/com_dotnet/com_wrapper.c +++ b/ext/com_dotnet/com_wrapper.c @@ -450,7 +450,7 @@ static void generate_dispids(php_dispatchex *disp TSRMLS_DC) zend_string *name = NULL; zval *tmp, tmp2; int keytype; - ulong pid; + php_uint_t pid; if (disp->dispid_to_name == NULL) { ALLOC_HASHTABLE(disp->dispid_to_name); @@ -467,7 +467,7 @@ static void generate_dispids(php_dispatchex *disp TSRMLS_DC) &pid, 0, &pos))) { char namebuf[32]; if (keytype == HASH_KEY_IS_INT) { - snprintf(namebuf, sizeof(namebuf), "%d", pid); + snprintf(namebuf, sizeof(namebuf), ZEND_UINT_FMT, pid); name = STR_INIT(namebuf, strlen(namebuf), 0); } else { STR_ADDREF(name); @@ -590,7 +590,7 @@ PHP_COM_DOTNET_API IDispatch *php_com_wrapper_export_as_sink(zval *val, GUID *si zend_string *name = NULL; zval tmp, *ntmp; int keytype; - ulong pid; + php_uint_t pid; disp->dispid_to_name = id_to_name; diff --git a/ext/com_dotnet/php_com_dotnet_internal.h b/ext/com_dotnet/php_com_dotnet_internal.h index d093e3c37b..5d4e75b3f8 100644 --- a/ext/com_dotnet/php_com_dotnet_internal.h +++ b/ext/com_dotnet/php_com_dotnet_internal.h @@ -38,7 +38,7 @@ typedef struct _php_com_dotnet_object { int modified; ITypeInfo *typeinfo; - long code_page; + php_int_t code_page; zend_class_entry *ce; |