richedit: Remove checks for converting internal CHARFORMAT structs.
Dylan Smith
dylan.ah.smith at gmail.com
Thu Jul 29 13:06:08 CDT 2010
Prevents extra copying from having to be done for converting between
unicode/ascii or between the normal or extended version of the structure.
---
dlls/riched20/style.c | 20 +++++++-------------
1 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/dlls/riched20/style.c b/dlls/riched20/style.c
index bb2f808..605faeb 100644
--- a/dlls/riched20/style.c
+++ b/dlls/riched20/style.c
@@ -139,21 +139,16 @@ void ME_CopyToCFAny(CHARFORMAT2W *to, CHARFORMAT2W *from)
CopyMemory(to, from, to->cbSize);
}
-ME_Style *ME_MakeStyle(CHARFORMAT2W *style) {
- CHARFORMAT2W styledata;
+ME_Style *ME_MakeStyle(CHARFORMAT2W *style)
+{
ME_Style *s = ALLOC_OBJ(ME_Style);
-
- style = ME_ToCF2W(&styledata, style);
- memset(s, 0, sizeof(ME_Style));
- if (style->cbSize <= sizeof(CHARFORMAT2W))
- CopyMemory(&s->fmt, style, style->cbSize);
- else
- s->fmt = *style;
- s->fmt.cbSize = sizeof(CHARFORMAT2W);
+ assert(style->cbSize == sizeof(CHARFORMAT2W));
+ s->fmt = *style;
s->nSequence = -2;
s->nRefs = 1;
s->hFont = NULL;
+ memset(&s->tm, 0, sizeof(s->tm));
s->tm.tmAscent = -1;
all_refs++;
TRACE_(richedit_style)("ME_MakeStyle %p, total refs=%d\n", s, all_refs);
@@ -171,7 +166,7 @@ ME_Style *ME_MakeStyle(CHARFORMAT2W *style) {
s->fmt.dwMask |= mask;\
CopyMemory(s->fmt.member, style->member, sizeof(style->member));\
}
-
+
void ME_InitCharFormat2W(CHARFORMAT2W *pFmt)
{
ZeroMemory(pFmt, sizeof(CHARFORMAT2W));
@@ -180,9 +175,8 @@ void ME_InitCharFormat2W(CHARFORMAT2W *pFmt)
ME_Style *ME_ApplyStyle(ME_Style *sSrc, CHARFORMAT2W *style)
{
- CHARFORMAT2W styledata;
ME_Style *s = ME_MakeStyle(&sSrc->fmt);
- style = ME_ToCF2W(&styledata, style);
+ assert(style->cbSize == sizeof(CHARFORMAT2W));
COPY_STYLE_ITEM(CFM_ANIMATION, bAnimation);
COPY_STYLE_ITEM(CFM_BACKCOLOR, crBackColor);
COPY_STYLE_ITEM(CFM_CHARSET, bCharSet);
--
1.7.0.4
More information about the wine-patches
mailing list