Author: tfaber
Date: Fri Apr 10 09:27:25 2015
New Revision: 67126
URL:
http://svn.reactos.org/svn/reactos?rev=67126&view=rev
Log:
[GDI32]
- Fix uninitialized variable use in EnumEnhMetaFile
- Apply Wine commit 88e81025 (gdi32: Fix typo in a condition (PVS-Studio).) by André
Hentschel
CORE-9191 #resolve
Modified:
trunk/reactos/win32ss/gdi/gdi32/wine/enhmetafile.c
Modified: trunk/reactos/win32ss/gdi/gdi32/wine/enhmetafile.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/wine/enh…
==============================================================================
--- trunk/reactos/win32ss/gdi/gdi32/wine/enhmetafile.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/gdi32/wine/enhmetafile.c [iso-8859-1] Fri Apr 10 09:27:25
2015
@@ -1420,7 +1420,7 @@
if ((info->state.mode != MM_ISOTROPIC) && (info->state.mode !=
MM_ANISOTROPIC))
break;
if (!lpScaleWindowExtEx->xNum || !lpScaleWindowExtEx->xDenom ||
- !lpScaleWindowExtEx->xNum || !lpScaleWindowExtEx->yDenom)
+ !lpScaleWindowExtEx->yNum || !lpScaleWindowExtEx->yDenom)
break;
info->state.wndExtX = MulDiv(info->state.wndExtX,
lpScaleWindowExtEx->xNum,
lpScaleWindowExtEx->xDenom);
@@ -2292,6 +2292,7 @@
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
+ info->state.mode = MM_TEXT;
info->state.wndOrgX = 0;
info->state.wndOrgY = 0;
info->state.wndExtX = 1;
@@ -2342,71 +2343,69 @@
old_arcdir = SetArcDirection(hdc, AD_COUNTERCLOCKWISE);
old_polyfill = SetPolyFillMode(hdc, ALTERNATE);
old_stretchblt = SetStretchBltMode(hdc, BLACKONWHITE);
- }
-
- info->state.mode = MM_TEXT;
-
- if ( IS_WIN9X() )
- {
- /* Win95 leaves the vp/win ext/org info alone */
- info->init_transform.eM11 = 1.0;
- info->init_transform.eM12 = 0.0;
- info->init_transform.eM21 = 0.0;
- info->init_transform.eM22 = 1.0;
- info->init_transform.eDx = 0.0;
- info->init_transform.eDy = 0.0;
- }
- else
- {
- /* WinNT combines the vp/win ext/org info into a transform */
- double xscale, yscale;
- xscale = (double)vp_size.cx / (double)win_size.cx;
- yscale = (double)vp_size.cy / (double)win_size.cy;
- info->init_transform.eM11 = xscale;
- info->init_transform.eM12 = 0.0;
- info->init_transform.eM21 = 0.0;
- info->init_transform.eM22 = yscale;
- info->init_transform.eDx = (double)vp_org.x - xscale * (double)win_org.x;
- info->init_transform.eDy = (double)vp_org.y - yscale * (double)win_org.y;
-
- CombineTransform(&info->init_transform, &savedXform,
&info->init_transform);
- }
-
- if ( lpRect && WIDTH(emh->rclFrame) && HEIGHT(emh->rclFrame) )
- {
- double xSrcPixSize, ySrcPixSize, xscale, yscale;
- XFORM xform;
-
- TRACE("rect: %d,%d - %d,%d. rclFrame: %d,%d - %d,%d\n",
- lpRect->left, lpRect->top, lpRect->right, lpRect->bottom,
- emh->rclFrame.left, emh->rclFrame.top, emh->rclFrame.right,
- emh->rclFrame.bottom);
-
- xSrcPixSize = (double) emh->szlMillimeters.cx / emh->szlDevice.cx;
- ySrcPixSize = (double) emh->szlMillimeters.cy / emh->szlDevice.cy;
- xscale = (double) WIDTH(*lpRect) * 100.0 /
- WIDTH(emh->rclFrame) * xSrcPixSize;
- yscale = (double) HEIGHT(*lpRect) * 100.0 /
- HEIGHT(emh->rclFrame) * ySrcPixSize;
- TRACE("xscale = %f, yscale = %f\n", xscale, yscale);
-
- xform.eM11 = xscale;
- xform.eM12 = 0;
- xform.eM21 = 0;
- xform.eM22 = yscale;
- xform.eDx = (double) lpRect->left - (double) WIDTH(*lpRect) /
WIDTH(emh->rclFrame) * emh->rclFrame.left;
- xform.eDy = (double) lpRect->top - (double) HEIGHT(*lpRect) /
HEIGHT(emh->rclFrame) * emh->rclFrame.top;
-
- CombineTransform(&info->init_transform, &xform,
&info->init_transform);
- }
-
- /* WinNT resets the current vp/win org/ext */
- if ( !IS_WIN9X() && hdc )
- {
- SetMapMode(hdc, MM_TEXT);
- SetWindowOrgEx(hdc, 0, 0, NULL);
- SetViewportOrgEx(hdc, 0, 0, NULL);
- EMF_Update_MF_Xform(hdc, info);
+
+ if ( IS_WIN9X() )
+ {
+ /* Win95 leaves the vp/win ext/org info alone */
+ info->init_transform.eM11 = 1.0;
+ info->init_transform.eM12 = 0.0;
+ info->init_transform.eM21 = 0.0;
+ info->init_transform.eM22 = 1.0;
+ info->init_transform.eDx = 0.0;
+ info->init_transform.eDy = 0.0;
+ }
+ else
+ {
+ /* WinNT combines the vp/win ext/org info into a transform */
+ double xscale, yscale;
+ xscale = (double)vp_size.cx / (double)win_size.cx;
+ yscale = (double)vp_size.cy / (double)win_size.cy;
+ info->init_transform.eM11 = xscale;
+ info->init_transform.eM12 = 0.0;
+ info->init_transform.eM21 = 0.0;
+ info->init_transform.eM22 = yscale;
+ info->init_transform.eDx = (double)vp_org.x - xscale *
(double)win_org.x;
+ info->init_transform.eDy = (double)vp_org.y - yscale *
(double)win_org.y;
+
+ CombineTransform(&info->init_transform, &savedXform,
&info->init_transform);
+ }
+
+ if ( lpRect && WIDTH(emh->rclFrame) &&
HEIGHT(emh->rclFrame) )
+ {
+ double xSrcPixSize, ySrcPixSize, xscale, yscale;
+ XFORM xform;
+
+ TRACE("rect: %d,%d - %d,%d. rclFrame: %d,%d - %d,%d\n",
+ lpRect->left, lpRect->top, lpRect->right, lpRect->bottom,
+ emh->rclFrame.left, emh->rclFrame.top, emh->rclFrame.right,
+ emh->rclFrame.bottom);
+
+ xSrcPixSize = (double) emh->szlMillimeters.cx / emh->szlDevice.cx;
+ ySrcPixSize = (double) emh->szlMillimeters.cy / emh->szlDevice.cy;
+ xscale = (double) WIDTH(*lpRect) * 100.0 /
+ WIDTH(emh->rclFrame) * xSrcPixSize;
+ yscale = (double) HEIGHT(*lpRect) * 100.0 /
+ HEIGHT(emh->rclFrame) * ySrcPixSize;
+ TRACE("xscale = %f, yscale = %f\n", xscale, yscale);
+
+ xform.eM11 = xscale;
+ xform.eM12 = 0;
+ xform.eM21 = 0;
+ xform.eM22 = yscale;
+ xform.eDx = (double) lpRect->left - (double) WIDTH(*lpRect) /
WIDTH(emh->rclFrame) * emh->rclFrame.left;
+ xform.eDy = (double) lpRect->top - (double) HEIGHT(*lpRect) /
HEIGHT(emh->rclFrame) * emh->rclFrame.top;
+
+ CombineTransform(&info->init_transform, &xform,
&info->init_transform);
+ }
+
+ /* WinNT resets the current vp/win org/ext */
+ if ( !IS_WIN9X() )
+ {
+ SetMapMode(hdc, MM_TEXT);
+ SetWindowOrgEx(hdc, 0, 0, NULL);
+ SetViewportOrgEx(hdc, 0, 0, NULL);
+ EMF_Update_MF_Xform(hdc, info);
+ }
}
ret = TRUE;