Dylan Smith : richedit: Avoid redundant calls to ME_CalcRunExtent.

Alexandre Julliard julliard at winehq.org
Fri Jul 30 10:24:12 CDT 2010


Module: wine
Branch: master
Commit: c0ee555e8f2684317ecf5baddd87cd966d59cbbe
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c0ee555e8f2684317ecf5baddd87cd966d59cbbe

Author: Dylan Smith <dylan.ah.smith at gmail.com>
Date:   Thu Jul 29 14:07:50 2010 -0400

richedit: Avoid redundant calls to ME_CalcRunExtent.

ME_SplitRun is only called by wrapping code. In all but one call the
returned second half of the split run will be returned, get passed back
to ME_WrapHandleRun, then ME_CalcRunExtent will be called at the start of
ME_WrapHandleRun through ME_WrapSizeRun.

---

 dlls/riched20/run.c  |    1 -
 dlls/riched20/wrap.c |    3 +++
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/riched20/run.c b/dlls/riched20/run.c
index 09cad59..3682d13 100644
--- a/dlls/riched20/run.c
+++ b/dlls/riched20/run.c
@@ -273,7 +273,6 @@ ME_DisplayItem *ME_SplitRun(ME_WrapContext *wc, ME_DisplayItem *item, int nVChar
   run2 = &cursor.pRun->member.run;
 
   ME_CalcRunExtent(wc->context, para, wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, run);
-  ME_CalcRunExtent(wc->context, para, wc->nRow ? wc->nLeftMargin : wc->nFirstMargin, run2);
 
   run2->pt.x = run->pt.x+run->nWidth;
   run2->pt.y = run->pt.y;
diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c
index a7c7fd3..2ec67ab 100644
--- a/dlls/riched20/wrap.c
+++ b/dlls/riched20/wrap.c
@@ -361,6 +361,9 @@ static ME_DisplayItem *ME_WrapHandleRun(ME_WrapContext *wc, ME_DisplayItem *p)
       if (black) {
         wc->bOverflown = FALSE;
         pp = ME_SplitRun(wc, p, black);
+        ME_CalcRunExtent(wc->context, &wc->pPara->member.para,
+                         wc->nRow ? wc->nLeftMargin : wc->nFirstMargin,
+                         &pp->member.run);
         ME_InsertRowStart(wc, pp);
         return pp;
       }




More information about the wine-cvs mailing list