jscript: Get rid of no longer needed VARIANT helpers.

This commit is contained in:
Jacek Caban 2012-09-17 15:19:44 +02:00 committed by Alexandre Julliard
parent a3f7f0f7de
commit 5fecc71d34
2 changed files with 12 additions and 35 deletions

View File

@ -387,16 +387,6 @@ static inline BOOL is_vclass(vdisp_t *vdisp, jsclass_t class)
return is_jsdisp(vdisp) && is_class(vdisp->u.jsdisp, class);
}
static inline BOOL is_num_vt(enum VARENUM vt)
{
return vt == VT_I4 || vt == VT_R8;
}
static inline DOUBLE num_val(const VARIANT *v)
{
return V_VT(v) == VT_I4 ? V_I4(v) : V_R8(v);
}
#ifndef INT32_MIN
#define INT32_MIN (-2147483647-1)
#endif
@ -410,29 +400,6 @@ static inline BOOL is_int32(double d)
return INT32_MIN <= d && d <= INT32_MAX && (double)(int)d == d;
}
static inline void num_set_int(VARIANT *v, INT i)
{
V_VT(v) = VT_I4;
V_I4(v) = i;
}
static inline void num_set_val(VARIANT *v, DOUBLE d)
{
if(is_int32(d)) {
V_VT(v) = VT_I4;
V_I4(v) = d;
}else {
V_VT(v) = VT_R8;
V_R8(v) = d;
}
}
static inline void var_set_jsdisp(VARIANT *v, jsdisp_t *jsdisp)
{
V_VT(v) = VT_DISPATCH;
V_DISPATCH(v) = to_disp(jsdisp);
}
static inline DWORD make_grfdex(script_ctx_t *ctx, DWORD flags)
{
return (ctx->version << 28) | flags;

View File

@ -352,9 +352,19 @@ HRESULT jsval_to_variant(jsval_t val, VARIANT *retv)
V_BSTR(retv) = NULL;
}
return S_OK;
case JSV_NUMBER:
num_set_val(retv, val.u.n);
case JSV_NUMBER: {
double n = get_number(val);
if(is_int32(n)) {
V_VT(retv) = VT_I4;
V_I4(retv) = n;
}else {
V_VT(retv) = VT_R8;
V_R8(retv) = n;
}
return S_OK;
}
case JSV_BOOL:
V_VT(retv) = VT_BOOL;
V_BOOL(retv) = val.u.b ? VARIANT_TRUE : VARIANT_FALSE;