Windows 2000 does not always zerofill data if you are using heap_zero
fill. to be 100% sure everything are zero fill, we need zerofil the
whole object before instate
Modified: trunk/reactos/lib/ddraw/main.c
_____
Modified: trunk/reactos/lib/ddraw/main.c
--- trunk/reactos/lib/ddraw/main.c 2005-08-10 18:09:44 UTC (rev
17262)
+++ trunk/reactos/lib/ddraw/main.c 2005-08-10 18:10:45 UTC (rev
17263)
@@ -21,6 +21,8 @@
if (This == NULL)
return E_OUTOFMEMORY;
+ ZeroMemory(This,sizeof(IDirectDrawImpl));
+
This->lpVtbl = &DirectDraw_VTable;
This->ref = 1;
*pIface = (LPDIRECTDRAW)This;
fix horribly broken ftol. this fixes abiword 2.0.3
Modified: trunk/reactos/lib/rtl/i386/math.S
_____
Modified: trunk/reactos/lib/rtl/i386/math.S
--- trunk/reactos/lib/rtl/i386/math.S 2005-08-10 17:19:13 UTC (rev
17259)
+++ trunk/reactos/lib/rtl/i386/math.S 2005-08-10 17:48:13 UTC (rev
17260)
@@ -204,6 +204,11 @@
.intel_syntax noprefix
+/*
+ * This routine is called by MSVC-generated code to convert from
floating point
+ * to integer representation. The floating point number to be converted
is
+ * on the top of the floating point stack.
+ */
__ftol:
/* Set up stack frame */
push ebp
@@ -214,10 +219,11 @@
wait
mov ax, [ebp-2]
or ah, 0xC
+ mov [ebp-4], ax
fldcw [ebp-4]
/* Do the conversion */
- fistp qword ptr [ebp-8]
+ fistp qword ptr [ebp-12]
/* Restore rounding mode */
fldcw [ebp-2]