Changeset 421 for trunk/src/io/string_table.cc
- Timestamp:
- 07/16/15 11:59:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/io/string_table.cc
r406 r421 12 12 } 13 13 14 nv::string_table_creator::index nv::string_table_creator::insert( const st d::string& s )14 nv::string_table_creator::index nv::string_table_creator::insert( const string_view& s ) 15 15 { 16 auto i = m_map.find( s ); 16 uint64 hash_value = hash_string< uint64 >( s.data() ); 17 auto i = m_map.find( hash_value ); 17 18 if ( i != m_map.end() ) 18 19 { 19 20 return i->second; 20 21 } 21 const char* cs = s. c_str();22 const char* cs = s.data(); 22 23 uint32 cs_size = s.size() + 1; 23 24 NV_ASSERT( m_offsets.size() < index(-1), "Too many strings!" ); … … 27 28 m_data.resize( dsize + cs_size ); 28 29 raw_copy( cs, cs + cs_size, m_data.data() + dsize ); 29 m_map[ s] = result;30 m_map[ hash_value ] = result; 30 31 return result; 31 32 } … … 55 56 } 56 57 57 nv::string_table_creator::index nv::string_table_creator::get( const st d::string& s ) const58 nv::string_table_creator::index nv::string_table_creator::get( const string_view& s ) const 58 59 { 59 auto i = m_map.find( s ); 60 uint64 hash_value = hash_string< uint64 >( s.data() ); 61 auto i = m_map.find( hash_value ); 60 62 if ( i != m_map.end() ) 61 63 {
Note: See TracChangeset
for help on using the changeset viewer.