--- a/Symbol.st Sat Feb 18 01:55:51 1995 +0100
+++ b/Symbol.st Sat Feb 18 02:22:37 1995 +0100
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1988 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.15 1995-02-15 10:25:05 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.16 1995-02-18 01:22:37 claus Exp $
'!
!Symbol class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.15 1995-02-15 10:25:05 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.16 1995-02-18 01:22:37 claus Exp $
"
!
@@ -97,26 +97,27 @@
symbol is returned. To use it for enum-type symbols, make certain, that the
names are unique (for example by including the classes name as a prefix-string)."
- |newSym len|
+ |sym len|
- aString knownAsSymbol ifTrue:[
- ^ aString asSymbol
+ sym := aString asSymbolIfInterned.
+ sym notNil ifTrue:[
+ ^ sym
].
"
create a new uninterned instance first
"
len := aString size.
- newSym := super basicNew:len.
- newSym replaceFrom:1 to:len with:aString.
+ sym := super basicNew:len.
+ sym replaceFrom:1 to:len with:aString.
"now, intern it"
%{
extern OBJ _INTERNSYMBOL();
- newSym = _INTERNSYMBOL(newSym, (OBJ *)0, __context);
+ sym = _INTERNSYMBOL(sym, (OBJ *)0, __context);
%}.
- ^ newSym
+ ^ sym
!
internCharacter:aCharacter