diff -r 1c9224a6ec00 -r d35a89d5c0ec UninterpretedBytes.st --- a/UninterpretedBytes.st Sun Apr 03 07:04:52 2016 +0200 +++ b/UninterpretedBytes.st Fri Apr 08 07:02:36 2016 +0100 @@ -467,7 +467,6 @@ "Modified: / 5.3.1998 / 14:56:22 / stefan" ! ! - !UninterpretedBytes methodsFor:'Compatibility'! doubleWordAt:index @@ -4235,6 +4234,25 @@ #[1 2 3 4 1 2 3 4] computeXorHashFrom:1 to:8. #[1 2 3 4 5 6 7 8] computeXorHashFrom:2 to:8. #[2 3 4 5 6 7 8] computeXorHashFrom:1 to:7. + #[2 3 4 5 6 7 8] computeXorHashFrom:1 to:8. + " +! + +hash + |sz| + + sz := self size. + sz <= 32 ifTrue:[ + ^ self computeXorHashFrom:1 to:sz. + ]. + ^ (sz bitXor:(self computeXorHashFrom:1 to:16)) bitXor:(self computeXorHashFrom:sz-16 to:sz) + + " + #[1 2 3 4] hash + #[1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 + 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ] hash + #[1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 + 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1] hash " ! !