diff options
author | Zeev Suraski <zeev@php.net> | 2000-12-22 12:57:09 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2000-12-22 12:57:09 +0000 |
commit | aa6d2ac5d0ee1d7cd608c6930ad0c57bc2953c47 (patch) | |
tree | 5776ae30d4c8115659935309042b9784ba55d592 /ext/rpc | |
parent | 36eaad252fc5fe292cd4f071f76e7879ce21130c (diff) | |
download | php-git-aa6d2ac5d0ee1d7cd608c6930ad0c57bc2953c47.tar.gz |
Heads up people!
Updated the get_current_key() API - the relevant authors, please take
a look at the updated code and make sure it's ok...
Diffstat (limited to 'ext/rpc')
-rw-r--r-- | ext/rpc/com/COM.c | 19 | ||||
-rw-r--r-- | ext/rpc/java/java.c | 3 |
2 files changed, 19 insertions, 3 deletions
diff --git a/ext/rpc/com/COM.c b/ext/rpc/com/COM.c index 1ff3f006b5..7f6a606ece 100644 --- a/ext/rpc/com/COM.c +++ b/ext/rpc/com/COM.c @@ -367,6 +367,20 @@ static void php_variant_to_pval(VARIANTARG *var_arg, pval *pval_arg, int persist } pval_arg->type = IS_DOUBLE; break; + case VT_DECIMAL: + switch (VarR8FromDec(&var_arg->decVal, &pval_arg->value.dval)) { + case DISP_E_OVERFLOW: + php_error(E_WARNING, "Overflow converting DECIMAL value to PHP floating point - number truncated"); + pval_arg->value.dval = DBL_MAX; + /* break missing intentionally */ + case S_OK: + pval_arg->type = IS_DOUBLE; + break; + default: + php_error(E_WARNING, "Error converting DECIMAL value to PHP floating point"); + break; + } + break; case VT_BOOL: if (pval_arg->is_ref == 0 || (var_arg->vt & VT_BYREF) != VT_BYREF) { if (var_arg->boolVal & 0xFFFF) { @@ -383,6 +397,9 @@ static void php_variant_to_pval(VARIANTARG *var_arg, pval *pval_arg, int persist } pval_arg->type = IS_BOOL; break; + case VT_VOID: + pval_arg->type = IS_NULL; + break; case VT_BSTR: if (pval_arg->is_ref == 0 || (var_arg->vt & VT_BYREF) != VT_BYREF) { pval_arg->value.str.val = php_OLECHAR_to_char(var_arg->bstrVal, &pval_arg->value.str.len, persistent); @@ -432,7 +449,7 @@ static void php_variant_to_pval(VARIANTARG *var_arg, pval *pval_arg, int persist break; case VT_UNKNOWN: var_arg->pdispVal->lpVtbl->Release(var_arg->pdispVal); - /* fallthru */ + /* break missing intentionally */ default: php_error(E_WARNING,"Unsupported variant type: %d (0x%X)", var_arg->vt, var_arg->vt); var_reset(pval_arg); diff --git a/ext/rpc/java/java.c b/ext/rpc/java/java.c index acf699a396..68541f673e 100644 --- a/ext/rpc/java/java.c +++ b/ext/rpc/java/java.c @@ -349,13 +349,12 @@ static jobject _java_makeObject(pval* arg JG_DC) { while(zend_hash_get_current_data(arg->value.ht, (void**)&value) == SUCCESS) { jval = _java_makeObject(*value JG_CC); - switch (zend_hash_get_current_key(arg->value.ht, &string_key, &num_key)) { + switch (zend_hash_get_current_key(arg->value.ht, &string_key, &num_key, 0)) { case HASH_KEY_IS_STRING: key.type = IS_STRING; key.value.str.val = string_key; key.value.str.len = strlen(string_key); jkey = _java_makeObject(&key JG_CC); - efree(string_key); break; case HASH_KEY_IS_LONG: key.type = IS_LONG; |