]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/colour.cpp
Blind fix for bug #1209944, wxFileConfig constructor corrupts the stack
[wxWidgets.git] / src / os2 / colour.cpp
index b9bd2f6bc3fe42b02a674766b990527c768f9e9e..72fecad2e7d6b4369f11dbe67444da6c06e4e8d4 100644 (file)
@@ -25,11 +25,16 @@ IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject)
 
 // Colour
 
-wxColour::wxColour ()
+void wxColour::Init()
 {
-    m_bIsInit = FALSE;
+    m_bIsInit = false;
     m_vPixel = 0;
     m_cRed = m_cBlue = m_cGreen = 0;
+} // end of wxColour::Init
+
+wxColour::wxColour ()
+{
+    Init();
 } // end of wxColour::wxColour
 
 wxColour::wxColour (
@@ -38,22 +43,14 @@ wxColour::wxColour (
 , unsigned char                     cBlue
 )
 {
-    m_cRed    = cRed;
-    m_cGreen  = cGreen;
-    m_cBlue   = cBlue;
-    m_bIsInit = TRUE;
-    m_vPixel  = OS2RGB (m_cRed, m_cGreen, m_cBlue);
+    Set(cRed, cGreen, cBlue);
 } // end of wxColour::wxColour
 
-wxColour::wxColour (
+wxColour::wxColour(
   const wxColour&                   rCol
 )
 {
-    m_cRed    = rCol.m_cRed;
-    m_cGreen  = rCol.m_cGreen;
-    m_cBlue   = rCol.m_cBlue;
-    m_bIsInit = rCol.m_bIsInit;
-    m_vPixel  = rCol.m_vPixel;
+    *this = rCol;
 } // end of wxColour::wxColour
 
 wxColour& wxColour::operator =(
@@ -72,30 +69,26 @@ void wxColour::InitFromName(
   const wxString&                   sCol
 )
 {
-    wxColour*                       pTheColour = wxTheColourDatabase->FindColour(sCol);
-
-    if (pTheColour)
+    if ( wxTheColourDatabase )
     {
-        m_cRed    = pTheColour->Red();
-        m_cGreen  = pTheColour->Green();
-        m_cBlue   = pTheColour->Blue();
-        m_bIsInit = TRUE;
+        wxColour col = wxTheColourDatabase->Find(sCol);
+        if ( col.Ok() )
+        {
+            *this = col;
+            return;
+        }
     }
-    else
-    {
-        m_cRed = 0;
-        m_cGreen = 0;
-        m_cBlue = 0;
-        m_bIsInit = FALSE;
-    }
-    m_vPixel = OS2RGB (m_cRed, m_cGreen, m_cBlue);
+
+    // leave invalid
+    Init();
+
 } // end of wxColour::InitFromName
 
-wxColour::~wxColour ()
+wxColour::~wxColour()
 {
 } // end of wxColour::~wxColour
 
-void wxColour::Set (
+void wxColour::Set(
   unsigned char                     cRed
 , unsigned char                     cGreen
 , unsigned char                     cBlue
@@ -104,6 +97,6 @@ void wxColour::Set (
     m_cRed    = cRed;
     m_cGreen  = cGreen;
     m_cBlue   = cBlue;
-    m_bIsInit = TRUE;
+    m_bIsInit = true;
     m_vPixel  = OS2RGB (m_cRed, m_cGreen, m_cBlue);
 } // end of wxColour::Set