diff -r f4a7a506a995 -r 54bcd20b369d Symbol.st --- 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