From 8f696653891801f586bfbfd7e11158e9dd2fff15 Mon Sep 17 00:00:00 2001 From: Mattia Barbon Date: Wed, 3 Apr 2002 19:32:31 +0000 Subject: [PATCH] Fix for broken BCC git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/iconbndl.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/common/iconbndl.cpp b/src/common/iconbndl.cpp index ef64f80fae..58deee8873 100644 --- a/src/common/iconbndl.cpp +++ b/src/common/iconbndl.cpp @@ -79,16 +79,23 @@ const wxIcon& wxIconBundle::GetIcon( const wxSize& size ) const size_t i, max = m_icons.GetCount(); wxCoord sysX = wxSystemSettings::GetMetric( wxSYS_ICON_X ), sysY = wxSystemSettings::GetMetric( wxSYS_ICON_Y ); - wxIcon* sysIcon = 0; - for( i = 0; i < max; ++i ) + wxIcon *sysIcon = 0; + // temp. variable needed to fix Borland C++ 5.5.1 problem + // with passing a return value through two functions + wxIcon *tmp; + + for( i = 0; i < max; i++ ) { if( !m_icons[i].Ok() ) continue; wxCoord sx = m_icons[i].GetWidth(), sy = m_icons[i].GetHeight(); // requested size if( sx == size.x && sy == size.y ) - return m_icons[i]; + { + tmp = &m_icons[i]; // fix for broken BCC + return *tmp; + } // keep track if there is a system-size icon if( sx == sysX && sy == sysY ) sysIcon = &m_icons[i]; @@ -97,7 +104,11 @@ const wxIcon& wxIconBundle::GetIcon( const wxSize& size ) const // return the system-sized icon if we've got one if( sysIcon ) return *sysIcon; // return the first icon, if we have one - return max > 0 ? m_icons[0] : wxNullIcon; + if( max > 0 ) // fix for broken BCC + tmp = &m_icons[0]; + else + tmp = &wxNullIcon; + return *tmp; } void wxIconBundle::AddIcon( const wxIcon& icon )