X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9e0a12c958fb6e26fedc61f66166b480cee13a5d..c9baf9d7381850790040b26b11cc9456877ddc4e:/src/common/gdicmn.cpp diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp index 0145deabfc..91cdb4ae8c 100644 --- a/src/common/gdicmn.cpp +++ b/src/common/gdicmn.cpp @@ -418,7 +418,8 @@ wxString wxColourDatabase::FindName (const wxColour& colour) const return name; } -void wxInitializeStockLists () { +void wxInitializeStockLists() +{ wxTheBrushList = new wxBrushList; wxThePenList = new wxPenList; wxTheFontList = new wxFontList; @@ -445,7 +446,7 @@ void wxInitializeStockObjects () static const int sizeFont = 12; wxNORMAL_FONT = new wxFont (sizeFont, wxMODERN, wxNORMAL, wxNORMAL); #else - wxNORMAL_FONT = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); + wxNORMAL_FONT = new wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); static const int sizeFont = wxNORMAL_FONT->GetPointSize(); #endif @@ -530,14 +531,19 @@ void wxDeleteStockObjects () wxDELETE(wxCROSS_CURSOR); } -void wxDeleteStockLists() { +void wxDeleteStockLists() +{ wxDELETE(wxTheBrushList); wxDELETE(wxThePenList); wxDELETE(wxTheFontList); wxDELETE(wxTheBitmapList); } -wxBitmapList::wxBitmapList () +// ============================================================================ +// wxTheXXXList stuff (semi-obsolete) +// ============================================================================ + +wxBitmapList::wxBitmapList() { } @@ -602,10 +608,9 @@ wxPen *wxPenList::FindOrCreatePen (const wxColour& colour, int width, int style) return NULL; } - // Yes, we can return a pointer to this in a later FindOrCreatePen call, - // because we created it within FindOrCreatePen. Safeguards against - // returning a pointer to an automatic variable and hanging on to it - // (dangling pointer). + AddPen(pen); + + // we'll delete it ourselves later pen->SetVisible(TRUE); return pen; @@ -618,7 +623,7 @@ wxBrushList::~wxBrushList () { wxBrush *brush = (wxBrush *) node->Data (); wxNode *next = node->Next (); - if (brush->GetVisible()) + if (brush && brush->GetVisible()) delete brush; node = next; } @@ -653,12 +658,11 @@ wxBrush *wxBrushList::FindOrCreateBrush (const wxColour& colour, int style) return NULL; } + AddBrush(brush); + + // we'll delete it ourselves later brush->SetVisible(TRUE); - // Yes, we can return a pointer to this in a later FindOrCreateBrush call, - // because we created it within FindOrCreateBrush. Safeguards against - // returning a pointer to an automatic variable and hanging on to it - // (dangling pointer). return brush; } @@ -759,6 +763,8 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize, font = new wxFont(pointSize, family, style, weight, underline, facename, encoding); + AddFont(font); + // and mark it as being cacheable font->SetVisible(TRUE); }