Please remove the upper limit, I think this was a
pre-internationalization method which should have been updated but was
not because not used.

For the lower limit, (CharacterTable at: anInteger + 1) in #value:
already does the job of signalling the out of bound error, but yes,
translation of the codePoint with this + 1 might be troubling.
My POV is this one:
Since #value: is responsible of possible mis-interpretation, #value:
should handle disambiguation of the Error.
That is a kind of encapsulation.
I suggest error report be moved in #value:, not in every sender of #value:

On the other hand, the test could eventually be omitted for efficiency reasons.
Though, if efficiency really matters, I would rather see Character
becoming immediate.

Nicolas

2009/5/27 Alexandre Bergel <[email protected]>:
> Yes, with a negative argument.
> Adding the check:
>  (0 > integer or: [255 < integer])
> ifTrue: [self error: 'parameter out of range 0..255'].
> is probably enough.
> Alexandre
>
>
> On 27 May 2009, at 08:27, Gabriel Cotelli wrote:
>
> The ANSI Specification doesn't mention anything about that the integer must
> be in some range... the only thing that expects is that (Character
> codePoint: x) codePoint = x ....
>
> anyway... I can add the verification... but that's not specified in the
> ANSI... anybody knowns some senders of this? I checked Pharo-Dev and found
> none.. maybe in the Web Image?
>
> Alexandre, how you obtain an error using value: ? given a negative argument?
> I tried with values greater than 255 and works in my image...
>
> Tonight I check that
>
> 2009/5/27 Alexandre Bergel <[email protected]>
> I went through all the changes proposed by this slice. I am not sure how
> should I review the code, but here is my try:
> - the new version of Character class>>codePoint: anInteger seems to have a
> different behavior:
> The old (current) code is
> codePoint: integer
> "Return a character whose encoding value is integer."
> #Fundmntl.
> (0 > integer or: [255 < integer])
> ifTrue: [self error: 'parameter out of range 0..255'].
> ^ CharacterTable at: integer + 1
> The new one is:
> codePoint: anInteger
> "Just for ANSI Compliance"
> ^self value: anInteger
> value: anInteger
> "Answer the Character whose value is anInteger."
> anInteger > 255 ifTrue: [^self basicNew setValue: anInteger].
> ^ CharacterTable at: anInteger + 1.
> At the end an error is raised, but this is not the same.
> Was this review useful?
> Cheers,
> Alexandre
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to