Spread bitmap store hash table elements
XOR of two sequential ints makes for an inefficient hash table. The hash_combine function is intended for this purpose
This commit is contained in:
parent
ae6a2a6443
commit
ed02d7c974
|
@ -28,6 +28,7 @@
|
||||||
#include <bitmaps.h>
|
#include <bitmaps.h>
|
||||||
#include <bitmap_store.h>
|
#include <bitmap_store.h>
|
||||||
#include <bitmaps/bitmap_info.h>
|
#include <bitmaps/bitmap_info.h>
|
||||||
|
#include <hash_eda.h>
|
||||||
#include <kiplatform/ui.h>
|
#include <kiplatform/ui.h>
|
||||||
#include <paths.h>
|
#include <paths.h>
|
||||||
#include <pgm_base.h>
|
#include <pgm_base.h>
|
||||||
|
@ -93,7 +94,10 @@ static const wxString IMAGE_ARCHIVE = wxT( "images.tar.gz" );
|
||||||
|
|
||||||
size_t std::hash<std::pair<BITMAPS, int>>::operator()( const std::pair<BITMAPS, int>& aPair ) const
|
size_t std::hash<std::pair<BITMAPS, int>>::operator()( const std::pair<BITMAPS, int>& aPair ) const
|
||||||
{
|
{
|
||||||
return std::hash<int>()( static_cast<int>( aPair.first ) ^ std::hash<int>()( aPair.second ) );
|
std::size_t seed = 0xa82de1c0;
|
||||||
|
hash_combine( seed, static_cast<size_t>( aPair.first ), static_cast<size_t>( aPair.second ) );
|
||||||
|
|
||||||
|
return seed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue