From 23afe648cebb471ce620528fbeb8bfd2f25849fc Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 21 Jul 2004 17:00:13 +0000 Subject: [PATCH 1/1] implemented wxNativeFontInfo::operator=() when wxUSE_PANGO, this fixes crashes when wxFont::SetNativeFontInfo() is used git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/fontutil.h | 18 +++++++++++++++--- src/unix/fontutil.cpp | 5 +++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/include/wx/fontutil.h b/include/wx/fontutil.h index e2243613dc..56099b4758 100644 --- a/include/wx/fontutil.h +++ b/include/wx/fontutil.h @@ -136,9 +136,21 @@ public: wxNativeFontInfo() { Init(); } #if wxUSE_PANGO - wxNativeFontInfo(const wxNativeFontInfo& info); - ~wxNativeFontInfo(); -#endif +private: + void Init(const wxNativeFontInfo& info); + void Free(); + +public: + wxNativeFontInfo(const wxNativeFontInfo& info) { Init(info); } + ~wxNativeFontInfo() { Free(); } + + wxNativeFontInfo& operator=(const wxNativeFontInfo& info) + { + Free(); + Init(info); + return *this; + } +#endif // wxUSE_PANGO // reset to the default state void Init(); diff --git a/src/unix/fontutil.cpp b/src/unix/fontutil.cpp index 79f36b31dd..ddbf06d0cf 100644 --- a/src/unix/fontutil.cpp +++ b/src/unix/fontutil.cpp @@ -57,7 +57,8 @@ void wxNativeFontInfo::Init() description = NULL; } -wxNativeFontInfo::wxNativeFontInfo(const wxNativeFontInfo& info) +void +wxNativeFontInfo::Init(const wxNativeFontInfo& info) { if (info.description) description = pango_font_description_copy(info.description); @@ -65,7 +66,7 @@ wxNativeFontInfo::wxNativeFontInfo(const wxNativeFontInfo& info) description = NULL; } -wxNativeFontInfo::~wxNativeFontInfo() +wxNativeFontInfo::Free() { if (description) pango_font_description_free(description); -- 2.47.2