]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fontcmn.cpp
don't crash when loading images with verbose==false (patch 1449823)
[wxWidgets.git] / src / common / fontcmn.cpp
index cb10a1772d610d80a11d51dea6bd10a02949f026..743667fa2ae922e9befe0b821759c48fcdef7b7e 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "fontbase.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/font.h"
-#include "wx/intl.h"
+    #include "wx/dc.h"
+    #include "wx/font.h"
+    #include "wx/intl.h"
+    #include "wx/dcscreen.h"
 #endif // WX_PRECOMP
 
 #include "wx/gdicmn.h"
 // helper functions
 // ----------------------------------------------------------------------------
 
-static void AdjustFontSize(wxFont font, wxDC& dc, const wxSize& pixelSize)
+static void AdjustFontSize(wxFont& font, wxDC& dc, const wxSize& pixelSize)
 {
-    int currentSize = font.GetPointSize();
-    int largestGood;
-    int smallestBad;
+    int currentSize = 0;
+    int largestGood = 0;
+    int smallestBad = 0;
 
     bool initialGoodFound = false;
     bool initialBadFound = false;
 
+    // NB: this assignment was separated from the variable definition
+    // in order to fix a gcc v3.3.3 compiler crash
+    currentSize = font.GetPointSize();
     while (currentSize > 0)
     {
         dc.SetFont(font);
@@ -185,10 +186,10 @@ wxFont *wxFontBase::New(const wxSize& pixelSize,
     return new wxFont(pixelSize, family, style, weight, underlined,
                       face, encoding);
 #else
-    wxFont * ret = New(10, family, style, weight, underlined, face, encoding);
+    wxFont *self = New(10, family, style, weight, underlined, face, encoding);
     wxScreenDC dc;
-    ret->AdjustFontSize(*(wxFont *)this, dc, pixelSize);
-    return ret;
+    AdjustFontSize(*(wxFont *)self, dc, pixelSize);
+    return self;
 #endif
 }
 
@@ -299,14 +300,6 @@ void wxFontBase::SetNativeFontInfoUserDesc(const wxString& info)
     }
 }
 
-wxFont& wxFont::operator=(const wxFont& font)
-{
-    if ( this != &font )
-        Ref(font);
-
-    return (wxFont &)*this;
-}
-
 bool wxFontBase::operator==(const wxFont& font) const
 {
     // either it is the same font, i.e. they share the same common data or they
@@ -516,7 +509,7 @@ void wxNativeFontInfo::SetUnderlined(bool underlined_)
     underlined = underlined_;
 }
 
-void wxNativeFontInfo::SetFaceName(wxString facename_)
+void wxNativeFontInfo::SetFaceName(const wxString& facename_)
 {
     faceName = facename_;
 }
@@ -601,7 +594,7 @@ wxString wxNativeFontInfo::ToUserString() const
     wxFontEncoding enc = GetEncoding();
     if ( enc != wxFONTENCODING_DEFAULT && enc != wxFONTENCODING_SYSTEM )
     {
-        desc << _T(' ') << wxFontMapper::Get()->GetEncodingName(enc);
+        desc << _T(' ') << wxFontMapper::GetEncodingName(enc);
     }
 #endif // wxUSE_FONTMAP