|
@@ -91,7 +91,7 @@ namespace Framework
|
|
|
{
|
|
|
if( i < 256 )
|
|
|
{
|
|
|
- for( unsigned char j = (unsigned char)( i + 1 ); true; j++ )
|
|
|
+ for( unsigned char j = (unsigned char)(i + 1); true; j++ )
|
|
|
{
|
|
|
if( d.parent->map->z( j ) )
|
|
|
return TrieIterator( TrieIteratorData<T>( d.parent->map->z( j )->map, *d.parent ) );
|
|
@@ -127,7 +127,7 @@ namespace Framework
|
|
|
return data.map != 0;
|
|
|
}
|
|
|
|
|
|
- operator T *( )
|
|
|
+ operator T *()
|
|
|
{
|
|
|
return data.map->zValue();
|
|
|
}
|
|
@@ -162,51 +162,51 @@ namespace Framework
|
|
|
map->release();
|
|
|
}
|
|
|
|
|
|
- void set( const char *addr, T *value )
|
|
|
+ void set( const char *addr, int addrLen, T *value )
|
|
|
{
|
|
|
- if( !*addr )
|
|
|
+ if( !addrLen )
|
|
|
map->setValue( value );
|
|
|
else
|
|
|
{
|
|
|
if( !map->z( *addr ) )
|
|
|
map->set( *addr, new Trie< T >() );
|
|
|
- map->z( *addr )->set( addr + 1, value );
|
|
|
+ map->z( *addr )->set( addr + 1, addrLen - 1, value );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- void remove( const char *addr )
|
|
|
+ void remove( const char *addr, int addrLen )
|
|
|
{
|
|
|
- if( !*addr )
|
|
|
+ if( !addrLen )
|
|
|
map->setValue( 0 );
|
|
|
else
|
|
|
{
|
|
|
if( !map->z( *addr ) )
|
|
|
return;
|
|
|
- map->z( *addr )->remove( addr + 1 );
|
|
|
+ map->z( *addr )->remove( addr + 1, addrLen - 1 );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- T *get( const char *addr )
|
|
|
+ T *get( const char *addr, int addrLen )
|
|
|
{
|
|
|
- if( !*addr )
|
|
|
+ if( !addrLen )
|
|
|
return map->getValue();
|
|
|
else
|
|
|
{
|
|
|
if( !map->z( *addr ) )
|
|
|
return 0;
|
|
|
- return map->z( *addr )->get( addr + 1 );
|
|
|
+ return map->z( *addr )->get( addr + 1, addrLen - 1 );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- T *z( const char *addr )
|
|
|
+ T *z( const char *addr, int addrLen )
|
|
|
{
|
|
|
- if( !*addr )
|
|
|
+ if( !addrLen )
|
|
|
return map->zValue();
|
|
|
else
|
|
|
{
|
|
|
if( !map->z( *addr ) )
|
|
|
return 0;
|
|
|
- return map->z( *addr )->z( addr + 1 );
|
|
|
+ return map->z( *addr )->z( addr + 1, addrLen - 1 );
|
|
|
}
|
|
|
}
|
|
|
|