don't use wxTheXXXList in wxXXX ctor/dtor, only objects explicitly created
with FindOrCreateXXX() are managed by the lists git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -255,14 +255,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxBitmap,wxGDIObject)
|
||||
|
||||
wxBitmap::wxBitmap()
|
||||
{
|
||||
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
|
||||
}
|
||||
|
||||
wxBitmap::wxBitmap( int width, int height, int depth )
|
||||
{
|
||||
Create( width, height, depth );
|
||||
|
||||
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
|
||||
}
|
||||
|
||||
bool wxBitmap::Create( int width, int height, int depth )
|
||||
@@ -322,8 +319,6 @@ bool wxBitmap::CreateFromXpm( const char **bits )
|
||||
|
||||
M_BMPDATA->m_bpp = visual->depth; // ?
|
||||
|
||||
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -334,8 +329,6 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
|
||||
|
||||
m_refData = new wxBitmapRefData();
|
||||
|
||||
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
|
||||
|
||||
// ------
|
||||
// convertion to mono bitmap:
|
||||
// ------
|
||||
@@ -774,15 +767,11 @@ wxImage wxBitmap::ConvertToImage() const
|
||||
wxBitmap::wxBitmap( const wxBitmap& bmp )
|
||||
{
|
||||
Ref( bmp );
|
||||
|
||||
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
|
||||
}
|
||||
|
||||
wxBitmap::wxBitmap( const wxString &filename, int type )
|
||||
{
|
||||
LoadFile( filename, type );
|
||||
|
||||
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
|
||||
}
|
||||
|
||||
wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth))
|
||||
@@ -797,19 +786,17 @@ wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth
|
||||
M_BMPDATA->m_bpp = 1;
|
||||
|
||||
wxCHECK_RET( M_BMPDATA->m_bitmap, wxT("couldn't create bitmap") );
|
||||
|
||||
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
|
||||
}
|
||||
|
||||
wxBitmap::~wxBitmap()
|
||||
{
|
||||
if (wxTheBitmapList) wxTheBitmapList->DeleteObject(this);
|
||||
}
|
||||
|
||||
wxBitmap& wxBitmap::operator = ( const wxBitmap& bmp )
|
||||
{
|
||||
if (*this == bmp) return (*this);
|
||||
Ref( bmp );
|
||||
if ( m_refData != bmp.m_refData )
|
||||
Ref( bmp );
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: brush.cpp
|
||||
// Name: src/gtk/brush.cpp
|
||||
// Purpose:
|
||||
// Author: Robert Roebling
|
||||
// Id: $Id$
|
||||
// Copyright: (c) 1998 Robert Roebling
|
||||
// Licence: wxWindows licence
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef __GNUG__
|
||||
@@ -50,7 +50,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxBrush,wxGDIObject)
|
||||
|
||||
wxBrush::wxBrush()
|
||||
{
|
||||
if (wxTheBrushList) wxTheBrushList->AddBrush( this );
|
||||
}
|
||||
|
||||
wxBrush::wxBrush( const wxColour &colour, int style )
|
||||
@@ -58,41 +57,35 @@ wxBrush::wxBrush( const wxColour &colour, int style )
|
||||
m_refData = new wxBrushRefData();
|
||||
M_BRUSHDATA->m_style = style;
|
||||
M_BRUSHDATA->m_colour = colour;
|
||||
|
||||
if (wxTheBrushList) wxTheBrushList->AddBrush( this );
|
||||
}
|
||||
|
||||
wxBrush::wxBrush( const wxBitmap &stippleBitmap )
|
||||
{
|
||||
m_refData = new wxBrushRefData();
|
||||
M_BRUSHDATA->m_colour = *wxBLACK;
|
||||
|
||||
|
||||
M_BRUSHDATA->m_stipple = stippleBitmap;
|
||||
|
||||
if (M_BRUSHDATA->m_stipple.GetMask())
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE;
|
||||
else
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE;
|
||||
|
||||
if (wxTheBrushList) wxTheBrushList->AddBrush( this );
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE;
|
||||
else
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE;
|
||||
}
|
||||
|
||||
wxBrush::wxBrush( const wxBrush &brush )
|
||||
{
|
||||
Ref( brush );
|
||||
|
||||
if (wxTheBrushList) wxTheBrushList->AddBrush( this );
|
||||
}
|
||||
|
||||
wxBrush::~wxBrush()
|
||||
{
|
||||
if (wxTheBrushList) wxTheBrushList->RemoveBrush( this );
|
||||
}
|
||||
|
||||
wxBrush& wxBrush::operator = ( const wxBrush& brush )
|
||||
{
|
||||
if (*this == brush) return (*this);
|
||||
Ref( brush );
|
||||
if ( m_refData != brush.m_refData )
|
||||
Ref( brush );
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -168,12 +161,12 @@ void wxBrush::SetStipple( const wxBitmap& stipple )
|
||||
M_BRUSHDATA->m_stipple = stipple;
|
||||
if (M_BRUSHDATA->m_stipple.GetMask())
|
||||
{
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE;
|
||||
}
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
M_BRUSHDATA->m_style = wxSTIPPLE;
|
||||
}
|
||||
}
|
||||
|
||||
void wxBrush::Unshare()
|
||||
|
@@ -162,18 +162,18 @@ bool wxNativeFontInfo::FromString(const wxString& s)
|
||||
xFontName = tokenizer.GetNextToken();
|
||||
if(!xFontName)
|
||||
return FALSE;
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
wxString wxNativeFontInfo::ToString() const
|
||||
{
|
||||
wxString s;
|
||||
|
||||
|
||||
s.Printf(_T("%d;%s"),
|
||||
0, // version
|
||||
xFontName.c_str());
|
||||
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -185,8 +185,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
|
||||
|
||||
void wxFont::Init()
|
||||
{
|
||||
if (wxTheFontList)
|
||||
wxTheFontList->Append( this );
|
||||
}
|
||||
|
||||
wxFont::wxFont(const wxNativeFontInfo& info)
|
||||
@@ -334,8 +332,6 @@ void wxFont::Unshare()
|
||||
|
||||
wxFont::~wxFont()
|
||||
{
|
||||
if (wxTheFontList)
|
||||
wxTheFontList->DeleteObject( this );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -56,7 +56,7 @@ wxPenRefData::wxPenRefData( const wxPenRefData& data )
|
||||
m_countDashes = data.m_countDashes;
|
||||
/*
|
||||
if (data.m_dash) TODO
|
||||
m_dash = new
|
||||
m_dash = new
|
||||
*/
|
||||
m_dash = data.m_dash;
|
||||
}
|
||||
@@ -69,7 +69,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxPen,wxGDIObject)
|
||||
|
||||
wxPen::wxPen()
|
||||
{
|
||||
if (wxThePenList) wxThePenList->AddPen( this );
|
||||
}
|
||||
|
||||
wxPen::wxPen( const wxColour &colour, int width, int style )
|
||||
@@ -78,25 +77,22 @@ wxPen::wxPen( const wxColour &colour, int width, int style )
|
||||
M_PENDATA->m_width = width;
|
||||
M_PENDATA->m_style = style;
|
||||
M_PENDATA->m_colour = colour;
|
||||
|
||||
if (wxThePenList) wxThePenList->AddPen( this );
|
||||
}
|
||||
|
||||
wxPen::wxPen( const wxPen& pen )
|
||||
{
|
||||
Ref( pen );
|
||||
if (wxThePenList) wxThePenList->AddPen( this );
|
||||
}
|
||||
|
||||
wxPen::~wxPen()
|
||||
{
|
||||
if (wxThePenList) wxThePenList->RemovePen( this );
|
||||
}
|
||||
|
||||
wxPen& wxPen::operator = ( const wxPen& pen )
|
||||
{
|
||||
if (*this == pen) return (*this);
|
||||
Ref( pen );
|
||||
if ( m_refData != pen.m_refData )
|
||||
Ref( pen );
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -153,20 +149,20 @@ void wxPen::SetWidth( int width )
|
||||
M_PENDATA->m_width = width;
|
||||
}
|
||||
|
||||
int wxPen::GetDashes( wxDash **ptr ) const
|
||||
int wxPen::GetDashes( wxDash **ptr ) const
|
||||
{
|
||||
*ptr = (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*) NULL);
|
||||
*ptr = (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*) NULL);
|
||||
return (M_PENDATA ? M_PENDATA->m_countDashes : 0);
|
||||
}
|
||||
|
||||
int wxPen::GetDashCount() const
|
||||
{
|
||||
return (M_PENDATA->m_countDashes);
|
||||
int wxPen::GetDashCount() const
|
||||
{
|
||||
return (M_PENDATA->m_countDashes);
|
||||
}
|
||||
|
||||
wxDash* wxPen::GetDash() const
|
||||
{
|
||||
return (wxDash*)M_PENDATA->m_dash;
|
||||
wxDash* wxPen::GetDash() const
|
||||
{
|
||||
return (wxDash*)M_PENDATA->m_dash;
|
||||
}
|
||||
|
||||
int wxPen::GetCap() const
|
||||
|
Reference in New Issue
Block a user