Nikolay Sivov : dwrite/layout: Zero-initialize format structure.
Alexandre Julliard
julliard at winehq.org
Mon Nov 30 16:13:45 CST 2020
Module: wine
Branch: master
Commit: 2903090ecc62514e4cd58bbd70fcbc26f2c5556c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=2903090ecc62514e4cd58bbd70fcbc26f2c5556c
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Nov 30 15:12:42 2020 +0300
dwrite/layout: Zero-initialize format structure.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/dwrite/layout.c | 66 +++++++++++++++++++---------------------------------
1 file changed, 24 insertions(+), 42 deletions(-)
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index 25d3bcb4ad0..ab442c453bf 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -5920,10 +5920,10 @@ static struct dwrite_textformat *unsafe_impl_from_IDWriteTextFormat(IDWriteTextF
CONTAINING_RECORD(iface, struct dwrite_textformat, IDWriteTextFormat3_iface) : NULL;
}
-HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style,
- DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR *locale, IDWriteTextFormat **format)
+HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight,
+ DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR *locale, IDWriteTextFormat **format)
{
- struct dwrite_textformat *This;
+ struct dwrite_textformat *object;
*format = NULL;
@@ -5935,45 +5935,27 @@ HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *colle
((UINT32)style > DWRITE_FONT_STYLE_ITALIC))
return E_INVALIDARG;
- This = heap_alloc(sizeof(struct dwrite_textformat));
- if (!This) return E_OUTOFMEMORY;
-
- This->IDWriteTextFormat3_iface.lpVtbl = &dwritetextformatvtbl;
- This->refcount = 1;
- This->format.family_name = heap_strdupW(family_name);
- This->format.family_len = strlenW(family_name);
- This->format.locale = heap_strdupW(locale);
- This->format.locale_len = strlenW(locale);
- /* force locale name to lower case, layout will inherit this modified value */
- strlwrW(This->format.locale);
- This->format.weight = weight;
- This->format.style = style;
- This->format.fontsize = size;
- This->format.tabstop = 4.0f * size;
- This->format.stretch = stretch;
- This->format.textalignment = DWRITE_TEXT_ALIGNMENT_LEADING;
- This->format.optical_alignment = DWRITE_OPTICAL_ALIGNMENT_NONE;
- This->format.paralign = DWRITE_PARAGRAPH_ALIGNMENT_NEAR;
- This->format.wrapping = DWRITE_WORD_WRAPPING_WRAP;
- This->format.last_line_wrapping = TRUE;
- This->format.readingdir = DWRITE_READING_DIRECTION_LEFT_TO_RIGHT;
- This->format.flow = DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM;
- This->format.spacing.method = DWRITE_LINE_SPACING_METHOD_DEFAULT;
- This->format.spacing.height = 0.0f;
- This->format.spacing.baseline = 0.0f;
- This->format.spacing.leadingBefore = 0.0f;
- This->format.spacing.fontLineGapUsage = DWRITE_FONT_LINE_GAP_USAGE_DEFAULT;
- This->format.vertical_orientation = DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT;
- This->format.trimming.granularity = DWRITE_TRIMMING_GRANULARITY_NONE;
- This->format.trimming.delimiter = 0;
- This->format.trimming.delimiterCount = 0;
- This->format.trimmingsign = NULL;
- This->format.collection = collection;
- This->format.fallback = NULL;
- This->format.automatic_axes = DWRITE_AUTOMATIC_FONT_AXES_NONE;
- IDWriteFontCollection_AddRef(collection);
-
- *format = (IDWriteTextFormat *)&This->IDWriteTextFormat3_iface;
+ if (!(object = heap_alloc_zero(sizeof(*object))))
+ return E_OUTOFMEMORY;
+
+ object->IDWriteTextFormat3_iface.lpVtbl = &dwritetextformatvtbl;
+ object->refcount = 1;
+ object->format.family_name = heap_strdupW(family_name);
+ object->format.family_len = strlenW(family_name);
+ object->format.locale = heap_strdupW(locale);
+ object->format.locale_len = strlenW(locale);
+ /* Force locale name to lower case, layout will inherit this modified value. */
+ strlwrW(object->format.locale);
+ object->format.weight = weight;
+ object->format.style = style;
+ object->format.fontsize = size;
+ object->format.tabstop = 4.0f * size;
+ object->format.stretch = stretch;
+ object->format.last_line_wrapping = TRUE;
+ object->format.collection = collection;
+ IDWriteFontCollection_AddRef(object->format.collection);
+
+ *format = (IDWriteTextFormat *)&object->IDWriteTextFormat3_iface;
return S_OK;
}
More information about the wine-cvs
mailing list