1.1 --- a/epoc32/include/stdapis/stlportv5/stl/_string_hash.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/stdapis/stlportv5/stl/_string_hash.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -2,13 +2,13 @@
1.4 * Copyright (c) 1997-1999
1.5 * Silicon Graphics Computer Systems, Inc.
1.6 *
1.7 - * Copyright (c) 1999
1.8 + * Copyright (c) 1999
1.9 * Boris Fomitchev
1.10 *
1.11 * This material is provided "as is", with absolutely no warranty expressed
1.12 * or implied. Any use is at your own risk.
1.13 *
1.14 - * Permission to use or copy this software for any purpose is hereby granted
1.15 + * Permission to use or copy this software for any purpose is hereby granted
1.16 * without fee, provided the above notices are retained on all copies.
1.17 * Permission to modify the code and to distribute modified code is granted,
1.18 * provided the above notices are retained, and a notice that the code was
1.19 @@ -17,13 +17,13 @@
1.20 */
1.21
1.22 #ifndef _STLP_STRING_HASH_H
1.23 -# define _STLP_STRING_HASH_H
1.24 +#define _STLP_STRING_HASH_H
1.25
1.26 #ifndef _STLP_HASH_FUN_H
1.27 # include <stl/_hash_fun.h>
1.28 #endif
1.29
1.30 -#ifndef _STLP_STRING_H
1.31 +#ifndef _STLP_INTERNAL_STRING_H
1.32 # include <stl/_string.h>
1.33 #endif
1.34
1.35 @@ -33,15 +33,14 @@
1.36 _STLP_INLINE_LOOP size_t
1.37 __stl_string_hash(const basic_string<_CharT,_Traits,_Alloc>& __s) {
1.38 unsigned long __h = 0;
1.39 - typedef typename basic_string<_CharT,_Traits,_Alloc>::const_pointer const_ptr;
1.40 size_t __len = __s.size();
1.41 const _CharT* __data = __s.data();
1.42 for ( size_t __i = 0; __i < __len; ++__i)
1.43 - __h = 5*__h + __data[__i];
1.44 + __h = /* 5 *__h */(__h << 2) + __h + __data[__i];
1.45 return size_t(__h);
1.46 }
1.47
1.48 -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
1.49 +#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
1.50
1.51 template <class _CharT, class _Traits, class _Alloc>
1.52 struct hash<basic_string<_CharT,_Traits,_Alloc> > {
1.53 @@ -51,17 +50,19 @@
1.54
1.55 #else
1.56
1.57 -_STLP_TEMPLATE_NULL struct _STLP_CLASS_DECLSPEC hash<string> {
1.58 +_STLP_TEMPLATE_NULL
1.59 +struct _STLP_CLASS_DECLSPEC hash<string> {
1.60 size_t operator()(const string& __s) const
1.61 { return __stl_string_hash(__s); }
1.62 };
1.63
1.64 -# if defined (_STLP_HAS_WCHAR_T)
1.65 -_STLP_TEMPLATE_NULL struct _STLP_CLASS_DECLSPEC hash<wstring> {
1.66 +# if defined (_STLP_HAS_WCHAR_T)
1.67 +_STLP_TEMPLATE_NULL
1.68 +struct _STLP_CLASS_DECLSPEC hash<wstring> {
1.69 size_t operator()(const wstring& __s) const
1.70 { return __stl_string_hash(__s); }
1.71 };
1.72 -# endif
1.73 +# endif
1.74
1.75 #endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
1.76