From ff2c101d822cdf04a264df5166c9c7aa0aaef7b5 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 15 Jul 2005 03:50:56 +0000 Subject: [PATCH] BitmapText copy ctor to fix refcount desync --- stepmania/src/BitmapText.cpp | 17 +++++++++++++++++ stepmania/src/BitmapText.h | 1 + 2 files changed, 18 insertions(+) diff --git a/stepmania/src/BitmapText.cpp b/stepmania/src/BitmapText.cpp index 61c6d0ef4b..a61c1d7602 100644 --- a/stepmania/src/BitmapText.cpp +++ b/stepmania/src/BitmapText.cpp @@ -82,6 +82,23 @@ BitmapText::~BitmapText() FONT->UnloadFont( m_pFont ); } +BitmapText::BitmapText( const BitmapText &cpy ): + Actor( cpy ) +{ +#define CPY(a) a = cpy.a + CPY( m_sText ); + CPY( m_wTextLines ); + CPY( m_iLineWidths ); + CPY( m_iWrapWidthPixels ); + CPY( m_fMaxWidth ); + CPY( m_fMaxHeight ); + CPY( m_bRainbow ); + CPY( m_aVertices ); + CPY( m_pTextures ); +#undef CPY + + m_pFont = FONT->CopyFont( cpy.m_pFont ); +} void BitmapText::LoadFromNode( const CString& sDir, const XNode* pNode ) { diff --git a/stepmania/src/BitmapText.h b/stepmania/src/BitmapText.h index c17e4991aa..aeafd30a66 100644 --- a/stepmania/src/BitmapText.h +++ b/stepmania/src/BitmapText.h @@ -12,6 +12,7 @@ class BitmapText : public Actor { public: BitmapText(); + BitmapText( const BitmapText &cpy ); virtual ~BitmapText(); void LoadFromNode( const CString& sDir, const XNode* pNode );