natCharacter.cc (Character::getType): Handle negative code points.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238755 * java/lang/natCharacter.cc (Character::getType): Handle negative code points. (Character::toLowerCase): Likewise. (Character::toUpperCase): Likewise. (Character::digit): Likewise. (Character::getNumericValue): Likewise. (Character::getDirectionality): Likewise. (Character::toTitleCase): Likewise. From-SVN: r124370
This commit is contained in:
parent
82fd6170a8
commit
a74e2c64a1
2 changed files with 20 additions and 10 deletions
|
@ -1,3 +1,15 @@
|
|||
2007-05-02 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238755
|
||||
* java/lang/natCharacter.cc (Character::getType): Handle negative
|
||||
code points.
|
||||
(Character::toLowerCase): Likewise.
|
||||
(Character::toUpperCase): Likewise.
|
||||
(Character::digit): Likewise.
|
||||
(Character::getNumericValue): Likewise.
|
||||
(Character::getDirectionality): Likewise.
|
||||
(Character::toTitleCase): Likewise.
|
||||
|
||||
2007-04-30 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* java.lang.Character -- Wrapper class for char, and Unicode subsets
|
||||
Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
|
@ -90,7 +90,7 @@ jint
|
|||
java::lang::Character::getType(jint codePoint)
|
||||
{
|
||||
jint plane = codePoint >> 16;
|
||||
if (plane > 2 && plane != 14)
|
||||
if (plane < 0 || (plane > 2 && plane != 14))
|
||||
{
|
||||
if (plane > 14 && ((codePoint & 0xffff) < 0xfffe))
|
||||
return (jint) PRIVATE_TYPE;
|
||||
|
@ -112,7 +112,7 @@ jint
|
|||
java::lang::Character::toLowerCase(jint codePoint)
|
||||
{
|
||||
jint plane = codePoint >> 16;
|
||||
if (plane > 2 && plane != 14)
|
||||
if (plane < 0 || (plane > 2 && plane != 14))
|
||||
return codePoint;
|
||||
return (lower[plane][readCodePoint(codePoint) >> 7]) + codePoint;
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ jint
|
|||
java::lang::Character::toUpperCase(jint codePoint)
|
||||
{
|
||||
jint plane = codePoint >> 16;
|
||||
if (plane > 2 && plane != 14)
|
||||
if (plane < 0 || (plane > 2 && plane != 14))
|
||||
return codePoint;
|
||||
return (upper[plane][readCodePoint(codePoint) >> 7]) + codePoint;
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ java::lang::Character::toTitleCase(jint codePoint)
|
|||
{
|
||||
// As of Unicode 4.0.0 no characters outside of plane 0 have titlecase
|
||||
// mappings that are different from their uppercase mapping.
|
||||
if (codePoint < 0x10000)
|
||||
if (codePoint >= 0 && codePoint < 0x10000)
|
||||
return toTitleCase((jchar)codePoint);
|
||||
return toUpperCase(codePoint);
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ java::lang::Character::digit(jint codePoint, jint radix)
|
|||
return (jint) -1;
|
||||
|
||||
jint plane = codePoint >> 16;
|
||||
if (plane > 2 && plane != 14)
|
||||
if (plane < 0 || (plane > 2 && plane != 14))
|
||||
return UNASSIGNED_DIGIT;
|
||||
|
||||
jchar attr = readCodePoint(codePoint);
|
||||
|
@ -207,7 +207,7 @@ jint
|
|||
java::lang::Character::getNumericValue(jint codePoint)
|
||||
{
|
||||
jint plane = codePoint >> 16;
|
||||
if (plane > 2 && plane != 14)
|
||||
if (plane < 0 || (plane > 2 && plane != 14))
|
||||
return UNASSIGNED_NUMERIC_VALUE;
|
||||
jshort num = numValue[plane][readCodePoint(codePoint) >> 7];
|
||||
if (num <= -3)
|
||||
|
@ -225,7 +225,7 @@ jbyte
|
|||
java::lang::Character::getDirectionality(jint codePoint)
|
||||
{
|
||||
jint plane = codePoint >> 16;
|
||||
if (plane > 2 && plane != 14)
|
||||
if (plane < 0 || (plane > 2 && plane != 14))
|
||||
{
|
||||
if (plane > 14 && ((codePoint & 0xffff) < 0xfffe))
|
||||
return (jint) PRIVATE_DIRECTION;
|
||||
|
@ -233,5 +233,3 @@ java::lang::Character::getDirectionality(jint codePoint)
|
|||
}
|
||||
return direction[plane][readCodePoint(codePoint) >> 7];
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue