wineps.drv: Avoid not necessary floating point math.

Dmitry Timoshkov dmitry at codeweavers.com
Thu Apr 28 01:15:57 CDT 2011


---
 dlls/wineps.drv/driver.c |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/dlls/wineps.drv/driver.c b/dlls/wineps.drv/driver.c
index 7b30f3f..127ca56 100644
--- a/dlls/wineps.drv/driver.c
+++ b/dlls/wineps.drv/driver.c
@@ -72,10 +72,8 @@ void PSDRV_MergeDevmodes(PSDRV_DEVMODEA *dm1, PSDRV_DEVMODEA *dm2,
 	}
 	if(&page->entry != &pi->ppd->PageSizes ) {
 	    dm1->dmPublic.u1.s1.dmPaperSize = dm2->dmPublic.u1.s1.dmPaperSize;
-	    dm1->dmPublic.u1.s1.dmPaperWidth = page->PaperDimension->x *
-								254.0 / 72.0;
-	    dm1->dmPublic.u1.s1.dmPaperLength = page->PaperDimension->y *
-								254.0 / 72.0;
+	    dm1->dmPublic.u1.s1.dmPaperWidth = MulDiv(page->PaperDimension->x, 254, 72);
+	    dm1->dmPublic.u1.s1.dmPaperLength = MulDiv(page->PaperDimension->y, 254, 72);
 	    dm1->dmPublic.dmFields &= ~(DM_PAPERLENGTH | DM_PAPERWIDTH);
 	    dm1->dmPublic.dmFields |= DM_PAPERSIZE;
 	    TRACE("Changing page to %s %d x %d\n", page->FullName,
@@ -458,8 +456,8 @@ DWORD CDECL PSDRV_DeviceCapabilities(LPSTR lpszDriver, LPCSTR lpszDevice, LPCSTR
         TRACE("DC_PAPERSIZE: %f x %f\n", ps->PaperDimension->x, ps->PaperDimension->y);
         i++;
 	if(lpszOutput != NULL) {
-	  pt->x = ps->PaperDimension->x * 254.0 / 72.0;
-	  pt->y = ps->PaperDimension->y * 254.0 / 72.0;
+	  pt->x = MulDiv(ps->PaperDimension->x, 254, 72);
+	  pt->y = MulDiv(ps->PaperDimension->y, 254, 72);
 	  pt++;
 	}
       }
@@ -574,7 +572,7 @@ DWORD CDECL PSDRV_DeviceCapabilities(LPSTR lpszDriver, LPCSTR lpszDevice, LPCSTR
 	if(ps->PaperDimension->y > ptMax.y)
 	  ptMax.y = ps->PaperDimension->y;
       }
-      return MAKELONG(ptMax.x * 254.0 / 72.0, ptMax.y * 254.0 / 72.0 );
+      return MAKELONG(MulDiv(ptMax.x, 254, 72), MulDiv(ptMax.y, 254, 72));
     }
 
   case DC_MINEXTENT:
@@ -590,7 +588,7 @@ DWORD CDECL PSDRV_DeviceCapabilities(LPSTR lpszDriver, LPCSTR lpszDevice, LPCSTR
 	if(ptMin.y == -1 || ps->PaperDimension->y < ptMin.y)
 	  ptMin.y = ps->PaperDimension->y;
       }
-      return MAKELONG(ptMin.x * 254.0 / 72.0, ptMin.y * 254.0 / 72.0);
+      return MAKELONG(MulDiv(ptMin.x, 254, 72), MulDiv(ptMin.y, 254, 72));
     }
 
   case DC_SIZE:
-- 
1.7.4.3




More information about the wine-patches mailing list