Hi,

On Wed, 2002-07-31 at 17:57, Stephen Crawley wrote:
> the Kissme VM goes into an infinite loop.  The problem is in the private
> "upperCaseIndex" method that performs a binary search of a table encoded
> as a char array represented by the String value CharData.UPPER_SPECIAL.
> The problem is that this method is accessing the table via the String's
> value attribute, but it is not taking account of the String's 'offset'.
> In Kissme, this String's 'value' is part of a larger char array and
> the 'offset' is non-zero. 

How does CharData.UPPER_SPECIAL end up being part of another String?
Is it the compiler or the VM doing something "smart"?

> I suspect that other methods of String, etc that make use of CharData 
> could be making the same mistake. 

As far as I can see non of the code expects the char[] to be not zero
based. I believe it was never intended that the Strings were actually
used as real Strings. It was just a way to store char arrays.
Another solution would be to encode the values in CharData not as
Strings but as actual char[] but that might be a lot less efficient
(source code may explode I mean, it shouldn't matter for the class
file).

Cheers,

Mark

_______________________________________________
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath

Reply via email to