richedit: Properly destroy context in two places.

Dylan Smith dylan.ah.smith at gmail.com
Fri Feb 6 00:09:43 CST 2009


Whenever ME_InitContext is called, ME_DestroyContext should be used to
clean it up.  This way the context can be extended easily by modifying
those two functions.  Instead, these two places of code just released
the DC, without using ME_DestroyContext, so the created brush for the
margin was not deleted.
---
 dlls/riched20/run.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
-------------- next part --------------
diff --git a/dlls/riched20/run.c b/dlls/riched20/run.c
index 1f8cc18..741a469 100644
--- a/dlls/riched20/run.c
+++ b/dlls/riched20/run.c
@@ -600,7 +600,7 @@ int ME_PointFromChar(ME_TextEditor *editor, ME_Run *pRun, int nOffset)
   {
     if (nOffset)
       ME_GetOLEObjectSize(&c, pRun, &size);
-    ITextHost_TxReleaseDC(editor->texthost, c.hDC);
+    ME_DestroyContext(&c);
     return nOffset != 0;
   } else if (pRun->nFlags & MERF_ENDPARA) {
     nOffset = 0;
@@ -612,7 +612,7 @@ int ME_PointFromChar(ME_TextEditor *editor, ME_Run *pRun, int nOffset)
     strRunText = pRun->strText;
 
   ME_GetTextExtent(&c,  strRunText->szData, nOffset, pRun->style, &size);
-  ITextHost_TxReleaseDC(editor->texthost, c.hDC);
+  ME_DestroyContext(&c);
   if (editor->cPasswordMask)
     ME_DestroyString(strRunText);
   return size.cx;


More information about the wine-patches mailing list