summaryrefslogtreecommitdiffstats
path: root/gcc/ada/a-swuwha.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-22 12:24:57 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-22 12:24:57 +0000
commit7b7ad9c5488c4d997aa7a40467e79a7befddd1d2 (patch)
tree2c2f2f3cdeb10d78e9d0a86792f53fb95d5c97cd /gcc/ada/a-swuwha.adb
parent110eae0386ebafdc88a763a03d1c320317eca961 (diff)
downloadppe42-gcc-7b7ad9c5488c4d997aa7a40467e79a7befddd1d2.tar.gz
ppe42-gcc-7b7ad9c5488c4d997aa7a40467e79a7befddd1d2.zip
2009-06-22 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb: Minor code reorganization (avoid an unnecessary tree copy). 2009-06-22 Ed Falis <falis@adacore.com> * sysdep.c: remove include for nfsLib.h and an NFS specific error message for VxWorks 653 vThreads: not supported by the OS. * gsocket.h: disable sockets for VxWorks 653 vThreads. 2009-06-22 Robert Dewar <dewar@adacore.com> * sem_ch6.adb: Add ??? comment for bad use of Style_Check 2009-06-22 Matthew Gingell <gingell@adacore.com> Arnaud Charlet <charlet@adacore.com> * a-stzhas.adb, a-stwiha.adb, impunit.adb, a-swbwha.adb, a-shcain.adb, s-htable.adb, a-szuzha.adb, a-stunha.adb, a-stboha.adb, a-strhas.adb, g-spitbo.adb, s-strhas.adb, a-szbzha.adb, s-strhas.ads, Makefile.rtl, a-swuwha.adb: New unit System.String_Hash. Refactor redundant cut and pasted hash functions with instances of a new generic hash function. Implement a new string hashing algorithm which appears in testing to be move effective than to previous approach. * gcc-interface/Make-lang.in: Update dependencies. * gcc-interface/Makefile.in: Reindent correctly vms targets. Fix setting of TOOLS_TARGET_PAIRS for bare board platforms. Disable socket support for Vxworks 653 vThreads. Improve handling of signals on darwin. (GNATMAKE_OBJS): Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148789 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/a-swuwha.adb')
-rw-r--r--gcc/ada/a-swuwha.adb19
1 files changed, 4 insertions, 15 deletions
diff --git a/gcc/ada/a-swuwha.adb b/gcc/ada/a-swuwha.adb
index 9e7d38caa90..e3674478325 100644
--- a/gcc/ada/a-swuwha.adb
+++ b/gcc/ada/a-swuwha.adb
@@ -27,25 +27,14 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
--- Note: source of this algorithm: GNAT.HTable.Hash (g-htable.adb)
+with System.String_Hash;
function Ada.Strings.Wide_Unbounded.Wide_Hash
(Key : Unbounded_Wide_String) return Containers.Hash_Type
is
use Ada.Containers;
-
- function Rotate_Left
- (Value : Hash_Type;
- Amount : Natural) return Hash_Type;
- pragma Import (Intrinsic, Rotate_Left);
-
- Tmp : Hash_Type;
-
+ function Hash is new System.String_Hash.Hash
+ (Wide_Character, Wide_String, Hash_Type);
begin
- Tmp := 0;
- for J in 1 .. Key.Last loop
- Tmp := Rotate_Left (Tmp, 3) + Wide_Character'Pos (Key.Reference (J));
- end loop;
-
- return Tmp;
+ return Hash (To_Wide_String (Key));
end Ada.Strings.Wide_Unbounded.Wide_Hash;
OpenPOWER on IntegriCloud