From 35a91741d30e33ad354273ebd430660f3dca21c1 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Sat, 3 Jan 2015 00:35:04 +0300 Subject: [PATCH] dwrite: Move range bounds check to an attribute setting helper. --- dlls/dwrite/layout.c | 39 +++------------------------------------ 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c index 6117d6917fa..e788c6ab37f 100644 --- a/dlls/dwrite/layout.c +++ b/dlls/dwrite/layout.c @@ -639,6 +639,9 @@ static HRESULT set_layout_range_attr(struct dwrite_textlayout *layout, enum layo BOOL changed = FALSE; DWRITE_TEXT_RANGE r; + if (!validate_text_range(layout, &value->range)) + return S_OK; + /* If new range is completely within existing range, split existing range in two */ if ((outer = find_outer_range(layout, &value->range))) { @@ -1097,9 +1100,6 @@ static HRESULT WINAPI dwritetextlayout_SetFontCollection(IDWriteTextLayout2 *ifa TRACE("(%p)->(%p %s)\n", This, collection, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.collection = collection; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_FONTCOLL, &value); @@ -1115,12 +1115,8 @@ static HRESULT WINAPI dwritetextlayout_SetFontFamilyName(IDWriteTextLayout2 *ifa if (!name) return E_INVALIDARG; - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.fontfamily = name; - return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_FONTFAMILY, &value); } @@ -1131,9 +1127,6 @@ static HRESULT WINAPI dwritetextlayout_SetFontWeight(IDWriteTextLayout2 *iface, TRACE("(%p)->(%d %s)\n", This, weight, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.weight = weight; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_WEIGHT, &value); @@ -1146,9 +1139,6 @@ static HRESULT WINAPI dwritetextlayout_SetFontStyle(IDWriteTextLayout2 *iface, D TRACE("(%p)->(%d %s)\n", This, style, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.style = style; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_STYLE, &value); @@ -1161,9 +1151,6 @@ static HRESULT WINAPI dwritetextlayout_SetFontStretch(IDWriteTextLayout2 *iface, TRACE("(%p)->(%d %s)\n", This, stretch, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.stretch = stretch; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_STRETCH, &value); @@ -1176,9 +1163,6 @@ static HRESULT WINAPI dwritetextlayout_SetFontSize(IDWriteTextLayout2 *iface, FL TRACE("(%p)->(%.2f %s)\n", This, size, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.fontsize = size; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_FONTSIZE, &value); @@ -1191,9 +1175,6 @@ static HRESULT WINAPI dwritetextlayout_SetUnderline(IDWriteTextLayout2 *iface, B TRACE("(%p)->(%d %s)\n", This, underline, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.underline = underline; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_UNDERLINE, &value); @@ -1206,9 +1187,6 @@ static HRESULT WINAPI dwritetextlayout_SetStrikethrough(IDWriteTextLayout2 *ifac TRACE("(%p)->(%d %s)\n", This, strikethrough, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.underline = strikethrough; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_STRIKETHROUGH, &value); @@ -1221,9 +1199,6 @@ static HRESULT WINAPI dwritetextlayout_SetDrawingEffect(IDWriteTextLayout2 *ifac TRACE("(%p)->(%p %s)\n", This, effect, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.effect = effect; return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_EFFECT, &value); @@ -1236,12 +1211,8 @@ static HRESULT WINAPI dwritetextlayout_SetInlineObject(IDWriteTextLayout2 *iface TRACE("(%p)->(%p %s)\n", This, object, debugstr_range(&range)); - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.object = object; - return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_INLINE, &value); } @@ -1262,12 +1233,8 @@ static HRESULT WINAPI dwritetextlayout_SetLocaleName(IDWriteTextLayout2 *iface, if (!locale || strlenW(locale) > LOCALE_NAME_MAX_LENGTH-1) return E_INVALIDARG; - if (!validate_text_range(This, &range)) - return S_OK; - value.range = range; value.u.locale = locale; - return set_layout_range_attr(This, LAYOUT_RANGE_ATTR_LOCALE, &value); }