fixed memory leak in wxNativeFontInfo when using Pango

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2004-07-02 20:54:12 +00:00
parent 2d17baae34
commit fdf7514a00
6 changed files with 25 additions and 4 deletions

View File

@@ -135,6 +135,11 @@ public:
// default ctor (default copy ctor is ok)
wxNativeFontInfo() { Init(); }
#if wxUSE_PANGO
wxNativeFontInfo(const wxNativeFontInfo& info);
~wxNativeFontInfo();
#endif
// reset to the default state
void Init();

View File

@@ -204,7 +204,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
if ( style && style->font_desc )
{
wxNativeFontInfo info;
info.description = style->font_desc;
info.description = pango_font_description_copy(style->font_desc);
attr.font = wxFont(info);
}
else

View File

@@ -308,7 +308,8 @@ wxFont wxSystemSettingsNative::GetFont( wxSystemFont index )
if ( def && def->font_desc )
{
wxNativeFontInfo info;
info.description = def->font_desc;
info.description =
pango_font_description_copy(def->font_desc);
gs_objects.m_fontSystem = wxFont(info);
}
else

View File

@@ -204,7 +204,7 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
if ( style && style->font_desc )
{
wxNativeFontInfo info;
info.description = style->font_desc;
info.description = pango_font_description_copy(style->font_desc);
attr.font = wxFont(info);
}
else

View File

@@ -308,7 +308,8 @@ wxFont wxSystemSettingsNative::GetFont( wxSystemFont index )
if ( def && def->font_desc )
{
wxNativeFontInfo info;
info.description = def->font_desc;
info.description =
pango_font_description_copy(def->font_desc);
gs_objects.m_fontSystem = wxFont(info);
}
else

View File

@@ -57,6 +57,20 @@ void wxNativeFontInfo::Init()
description = NULL;
}
wxNativeFontInfo::wxNativeFontInfo(const wxNativeFontInfo& info)
{
if (info.description)
description = pango_font_description_copy(info.description);
else
description = NULL;
}
wxNativeFontInfo::~wxNativeFontInfo()
{
if (description)
pango_font_description_free(description);
}
int wxNativeFontInfo::GetPointSize() const
{
return pango_font_description_get_size( description ) / PANGO_SCALE;