dwrite: Initialize allocation size for a family before using it.
This commit is contained in:
parent
5b10a69c3a
commit
340aa07f60
|
@ -56,8 +56,8 @@ struct dwrite_fontfamily_data {
|
||||||
IDWriteLocalizedStrings *familyname;
|
IDWriteLocalizedStrings *familyname;
|
||||||
|
|
||||||
struct dwrite_font_data **fonts;
|
struct dwrite_font_data **fonts;
|
||||||
UINT32 font_count;
|
UINT32 font_count;
|
||||||
UINT32 alloc;
|
UINT32 font_alloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dwrite_fontcollection {
|
struct dwrite_fontcollection {
|
||||||
|
@ -1440,16 +1440,16 @@ static HRESULT add_family_syscollection(struct dwrite_fontcollection *collection
|
||||||
|
|
||||||
static HRESULT fontfamily_add_font(struct dwrite_fontfamily_data *family_data, struct dwrite_font_data *font_data)
|
static HRESULT fontfamily_add_font(struct dwrite_fontfamily_data *family_data, struct dwrite_font_data *font_data)
|
||||||
{
|
{
|
||||||
if (family_data->font_count + 1 >= family_data->alloc) {
|
if (family_data->font_count + 1 >= family_data->font_alloc) {
|
||||||
struct dwrite_font_data **new_list;
|
struct dwrite_font_data **new_list;
|
||||||
UINT32 new_alloc;
|
UINT32 new_alloc;
|
||||||
|
|
||||||
new_alloc = family_data->alloc * 2;
|
new_alloc = family_data->font_alloc * 2;
|
||||||
new_list = heap_realloc(family_data->fonts, sizeof(*family_data->fonts) * new_alloc);
|
new_list = heap_realloc(family_data->fonts, sizeof(*family_data->fonts) * new_alloc);
|
||||||
if (!new_list)
|
if (!new_list)
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
family_data->fonts = new_list;
|
family_data->fonts = new_list;
|
||||||
family_data->alloc = new_alloc;
|
family_data->font_alloc = new_alloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
family_data->fonts[family_data->font_count] = font_data;
|
family_data->fonts[family_data->font_count] = font_data;
|
||||||
|
@ -1558,16 +1558,16 @@ static HRESULT init_font_data(IDWriteFactory *factory, IDWriteFontFile *file, UI
|
||||||
|
|
||||||
static HRESULT init_fontfamily_data(IDWriteLocalizedStrings *familyname, struct dwrite_fontfamily_data *data)
|
static HRESULT init_fontfamily_data(IDWriteLocalizedStrings *familyname, struct dwrite_fontfamily_data *data)
|
||||||
{
|
{
|
||||||
data->fonts = heap_alloc(sizeof(*data->fonts)*data->alloc);
|
data->ref = 1;
|
||||||
|
data->font_count = 0;
|
||||||
|
data->font_alloc = 2;
|
||||||
|
|
||||||
|
data->fonts = heap_alloc(sizeof(*data->fonts)*data->font_alloc);
|
||||||
if (!data->fonts) {
|
if (!data->fonts) {
|
||||||
heap_free(data);
|
heap_free(data);
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->ref = 1;
|
|
||||||
data->font_count = 0;
|
|
||||||
data->alloc = 2;
|
|
||||||
|
|
||||||
data->familyname = familyname;
|
data->familyname = familyname;
|
||||||
IDWriteLocalizedStrings_AddRef(familyname);
|
IDWriteLocalizedStrings_AddRef(familyname);
|
||||||
|
|
||||||
|
@ -1761,7 +1761,7 @@ static HRESULT create_fontfamily(IDWriteLocalizedStrings *familyname, IDWriteFon
|
||||||
|
|
||||||
data->ref = 0;
|
data->ref = 0;
|
||||||
data->font_count = 0;
|
data->font_count = 0;
|
||||||
data->alloc = 2;
|
data->font_alloc = 2;
|
||||||
data->fonts = heap_alloc(sizeof(*data->fonts) * 2);
|
data->fonts = heap_alloc(sizeof(*data->fonts) * 2);
|
||||||
if (!data->fonts)
|
if (!data->fonts)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue