Re: (resend/renumber)[4/14]dwrite: implement a list of font data for IDWriteFontFamily
Aric Stewart <aric(a)codeweavers.com> writes:
@@ -1121,6 +1188,24 @@ static void get_font_properties(struct dwrite_font *font, HDC hdc) } }
+static HRESULT create_font_from_data(struct dwrite_font_data *data, IDWriteFont **font) +{ + HRESULT hr; + struct dwrite_font *This; + + hr = create_font_base(font); + if (FAILED(hr)) + return hr; + + This = impl_from_IDWriteFont(*font); + + heap_free(This->data); + This->data = data; + InterlockedIncrement(&This->data->ref); + + return S_OK; +}
That looks unnecessarily complicated. Why allocate and initialize the data only to immediately replace it? -- Alexandre Julliard julliard(a)winehq.org
On Wed Sep 3 11:45:18 2014, Alexandre Julliard wrote:
Aric Stewart <aric(a)codeweavers.com> writes:
@@ -1121,6 +1188,24 @@ static void get_font_properties(struct dwrite_font *font, HDC hdc) } }
+static HRESULT create_font_from_data(struct dwrite_font_data *data, IDWriteFont **font) +{ + HRESULT hr; + struct dwrite_font *This; + + hr = create_font_base(font); + if (FAILED(hr)) + return hr; + + This = impl_from_IDWriteFont(*font); + + heap_free(This->data); + This->data = data; + InterlockedIncrement(&This->data->ref); + + return S_OK; +}
That looks unnecessarily complicated. Why allocate and initialize the data only to immediately replace it?
There ends up being 2 ways that a IDWriteFont is created, one via existing data (as shown here) where we do not need the data initialized and one via an external resource (Such as a logfont or IDWriteFontFace) where we will use the initialized data. Would you prefer that I do not alloc/initialize the data in create_font and instead only alloc/initialize in the external resource case? thanks! -aric
Aric Stewart <aric(a)codeweavers.com> writes:
There ends up being 2 ways that a IDWriteFont is created, one via existing data (as shown here) where we do not need the data initialized and one via an external resource (Such as a logfont or IDWriteFontFace) where we will use the initialized data.
Would you prefer that I do not alloc/initialize the data in create_font and instead only alloc/initialize in the external resource case?
It would probably make more sense to have create_font_base allocate it and then call create_font_from_data. -- Alexandre Julliard julliard(a)winehq.org
participants (2)
-
Alexandre Julliard -
Aric Stewart