scrrun: Return float type size when signed I4 limit exceeded.
This commit is contained in:
parent
086a1e3709
commit
f82cb70033
|
@ -892,7 +892,7 @@ static HRESULT variant_from_largeint(const ULARGE_INTEGER *src, VARIANT *v)
|
|||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
if (src->HighPart)
|
||||
if (src->HighPart || src->LowPart > INT_MAX)
|
||||
{
|
||||
V_VT(v) = VT_R8;
|
||||
hr = VarR8FromUI8(src->QuadPart, &V_R8(v));
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#define COBJMACROS
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "windows.h"
|
||||
#include "ole2.h"
|
||||
|
@ -1296,7 +1297,7 @@ static void test_DriveCollection(void)
|
|||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
ok(V_VT(&size) == VT_R8 || V_VT(&size) == VT_I4, "got %d\n", V_VT(&size));
|
||||
if (V_VT(&size) == VT_R8)
|
||||
ok(V_R8(&size) > 0, "got %f\n", V_R8(&size));
|
||||
ok(V_R8(&size) > (double)INT_MAX, "got %f\n", V_R8(&size));
|
||||
else
|
||||
ok(V_I4(&size) > 0, "got %d\n", V_I4(&size));
|
||||
|
||||
|
|
Loading…
Reference in New Issue