From: <arn...@us...> - 2008-03-01 22:39:32
|
Revision: 1021 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=1021&view=rev Author: arnetheduck Date: 2008-03-01 14:39:24 -0800 (Sat, 01 Mar 2008) Log Message: ----------- Simplify memory handling Modified Paths: -------------- dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp Modified: dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp =================================================================== --- dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp 2008-03-01 22:00:01 UTC (rev 1020) +++ dcplusplus/trunk/smartwin/source/widgets/WidgetListView.cpp 2008-03-01 22:39:24 UTC (rev 1021) @@ -4,6 +4,8 @@ #include "../../include/smartwin/LibraryLoader.h" +#include <boost/scoped_array.hpp> + namespace SmartWin { bool WidgetListView::ComCtl6 = false; @@ -408,28 +410,19 @@ logicalColumn = - 1; HWND hHeader = reinterpret_cast< HWND >( ::SendMessage( hWnd, LVM_GETHEADER, 0, 0 ) ); int noItems = ::SendMessage( hHeader, HDM_GETITEMCOUNT, 0, 0 ); - int * myArrayOfCols = new int[noItems]; // TODO: Use boost::scoped_array or something... + boost::scoped_array<int> myArrayOfCols(new int[noItems]); int xOffset = 0; - try + ::SendMessage( hHeader, HDM_GETORDERARRAY, static_cast< WPARAM >( noItems ), reinterpret_cast< LPARAM >( myArrayOfCols.get() ) ); + for ( int idx = 0; idx < noItems; ++idx ) { - ::SendMessage( hHeader, HDM_GETORDERARRAY, static_cast< WPARAM >( noItems ), reinterpret_cast< LPARAM >( myArrayOfCols ) ); - for ( int idx = 0; idx < noItems; ++idx ) + if ( myArrayOfCols[idx] == column ) { - if ( myArrayOfCols[idx] == column ) - { - logicalColumn = idx; - break; - } - else - xOffset += ListView_GetColumnWidth( hWnd, myArrayOfCols[idx] ); + logicalColumn = idx; + break; } - delete [] myArrayOfCols; + else + xOffset += ListView_GetColumnWidth( hWnd, myArrayOfCols[idx] ); } - catch ( ... ) - { - delete [] myArrayOfCols; - throw; - } return xOffset; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |