--- a/Symbol.st Sat Aug 05 16:05:36 1995 +0200
+++ b/Symbol.st Tue Aug 08 02:49:43 1995 +0200
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1988 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.25 1995-08-03 01:17:01 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.26 1995-08-08 00:49:18 claus Exp $
'!
!Symbol class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.25 1995-08-03 01:17:01 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.26 1995-08-08 00:49:18 claus Exp $
"
!
@@ -297,10 +297,12 @@
int l;
if (__Class(self) == Symbol) {
- val = _GET_HASH(self);
+ val = __GET_HASH(self);
/*
* only do it, if I have no standard hash key
- * assigned.
+ * assigned (which can only happen due to a #become:,
+ * or by creating a symbol uninterned, and interning it
+ * after it got a hashKey assigned.
*/
if (val == 0) {
cp = _stringVal(self);
@@ -329,9 +331,10 @@
l |= 1;
val = (val * l) & 0x3FFFFFFF;
}
-
- RETURN ( _MKSMALLINT(val) );
+ } else {
+ val <<= __HASH_SHIFT__;
}
+ RETURN ( _MKSMALLINT(val) );
}
%}.
^ super identityHash