summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorHarald Radi <phanto@php.net>2001-07-18 19:56:18 +0000
committerHarald Radi <phanto@php.net>2001-07-18 19:56:18 +0000
commit3110a58795f92f04b8fd68ac9ee661711d21faa2 (patch)
tree3300b007ebb5d2b73c3d3b216f1d8cc1c41af448 /ext
parent65af9358cd815fed5d0df288cf5bf2eab66d0637 (diff)
downloadphp-git-3110a58795f92f04b8fd68ac9ee661711d21faa2.tar.gz
fixed a bug in 'case VT_DATE'
Diffstat (limited to 'ext')
-rw-r--r--ext/com/conversion.c13
-rw-r--r--ext/rpc/com/conversion.c13
2 files changed, 18 insertions, 8 deletions
diff --git a/ext/com/conversion.c b/ext/com/conversion.c
index 34da74435a..9e8ee43417 100644
--- a/ext/com/conversion.c
+++ b/ext/com/conversion.c
@@ -44,7 +44,6 @@ PHPAPI OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen, int codepage);
PHPAPI char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int persistent, int codepage);
/* implementations */
-
PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg, int codepage)
{
OLECHAR *unicode_str;
@@ -242,6 +241,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
struct tm *phptime;
phptime = gmtime(&(pval_arg->value.lval));
+ memset(&wintime, 0, sizeof(wintime));
wintime.wYear = phptime->tm_year + 1900;
wintime.wMonth = phptime->tm_mon + 1;
@@ -252,6 +252,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
SystemTimeToVariantTime(&wintime, &V_DATE(var_arg));
}
+ break;
case VT_BSTR:
convert_to_string_ex(&pval_arg);
@@ -339,6 +340,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
struct tm *phptime;
phptime = gmtime(&(pval_arg->value.lval));
+ memset(&wintime, 0, sizeof(wintime));
wintime.wYear = phptime->tm_year + 1900;
wintime.wMonth = phptime->tm_mon + 1;
@@ -349,6 +351,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
SystemTimeToVariantTime(&wintime, var_arg->pdate);
}
+ break;
case VT_BSTR|VT_BYREF:
convert_to_string(pval_arg);
@@ -442,7 +445,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
break;
default:
- php_error(E_WARNING, "Type not supportet or not yet implemented.");
+ php_error(E_WARNING, "Type not supported or not yet implemented.");
}
}
@@ -473,7 +476,7 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
if (1 != (Dims = SafeArrayGetDim(array)))
{
php_error(E_WARNING,"Unsupported: multi-dimensional (%d) SafeArrays", Dims);
- ZVAL_FALSE(pval_arg);
+ ZVAL_NULL(pval_arg);
return FAILURE;
}
SafeArrayLock( array);
@@ -552,7 +555,7 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
else switch(var_arg->vt & ~VT_BYREF)
{
case VT_EMPTY:
- pval_arg->type = IS_NULL;
+ ZVAL_NULL(pval_arg);
break;
case VT_UI1:
@@ -693,6 +696,8 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
VariantTimeToSystemTime(V_DATE(var_arg), &wintime);
}
+ memset(&phptime, 0, sizeof(phptime));
+
phptime.tm_year = wintime.wYear - 1900;
phptime.tm_mon = wintime.wMonth - 1;
phptime.tm_mday = wintime.wDay;
diff --git a/ext/rpc/com/conversion.c b/ext/rpc/com/conversion.c
index 34da74435a..9e8ee43417 100644
--- a/ext/rpc/com/conversion.c
+++ b/ext/rpc/com/conversion.c
@@ -44,7 +44,6 @@ PHPAPI OLECHAR *php_char_to_OLECHAR(char *C_str, uint strlen, int codepage);
PHPAPI char *php_OLECHAR_to_char(OLECHAR *unicode_str, uint *out_length, int persistent, int codepage);
/* implementations */
-
PHPAPI void php_pval_to_variant(pval *pval_arg, VARIANT *var_arg, int codepage)
{
OLECHAR *unicode_str;
@@ -242,6 +241,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
struct tm *phptime;
phptime = gmtime(&(pval_arg->value.lval));
+ memset(&wintime, 0, sizeof(wintime));
wintime.wYear = phptime->tm_year + 1900;
wintime.wMonth = phptime->tm_mon + 1;
@@ -252,6 +252,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
SystemTimeToVariantTime(&wintime, &V_DATE(var_arg));
}
+ break;
case VT_BSTR:
convert_to_string_ex(&pval_arg);
@@ -339,6 +340,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
struct tm *phptime;
phptime = gmtime(&(pval_arg->value.lval));
+ memset(&wintime, 0, sizeof(wintime));
wintime.wYear = phptime->tm_year + 1900;
wintime.wMonth = phptime->tm_mon + 1;
@@ -349,6 +351,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
SystemTimeToVariantTime(&wintime, var_arg->pdate);
}
+ break;
case VT_BSTR|VT_BYREF:
convert_to_string(pval_arg);
@@ -442,7 +445,7 @@ PHPAPI void php_pval_to_variant_ex(pval *pval_arg, VARIANT *var_arg, pval *pval_
break;
default:
- php_error(E_WARNING, "Type not supportet or not yet implemented.");
+ php_error(E_WARNING, "Type not supported or not yet implemented.");
}
}
@@ -473,7 +476,7 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
if (1 != (Dims = SafeArrayGetDim(array)))
{
php_error(E_WARNING,"Unsupported: multi-dimensional (%d) SafeArrays", Dims);
- ZVAL_FALSE(pval_arg);
+ ZVAL_NULL(pval_arg);
return FAILURE;
}
SafeArrayLock( array);
@@ -552,7 +555,7 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
else switch(var_arg->vt & ~VT_BYREF)
{
case VT_EMPTY:
- pval_arg->type = IS_NULL;
+ ZVAL_NULL(pval_arg);
break;
case VT_UI1:
@@ -693,6 +696,8 @@ PHPAPI int php_variant_to_pval(VARIANT *var_arg, pval *pval_arg, int persistent,
VariantTimeToSystemTime(V_DATE(var_arg), &wintime);
}
+ memset(&phptime, 0, sizeof(phptime));
+
phptime.tm_year = wintime.wYear - 1900;
phptime.tm_mon = wintime.wMonth - 1;
phptime.tm_mday = wintime.wDay;