src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java
changeset 58633 0c518cbf1dcc
parent 52248 2e330da7cbf4
equal deleted inserted replaced
58632:fbab568169c4 58633:0c518cbf1dcc
  3019     public void drawChars(char[] data, int offset, int length, int x, int y) {
  3019     public void drawChars(char[] data, int offset, int length, int x, int y) {
  3020 
  3020 
  3021         if (data == null) {
  3021         if (data == null) {
  3022             throw new NullPointerException("char data is null");
  3022             throw new NullPointerException("char data is null");
  3023         }
  3023         }
  3024         if (offset < 0 || length < 0 || offset + length > data.length) {
  3024         if (offset < 0 || length < 0 || offset + length < length ||
       
  3025             offset + length > data.length) {
  3025             throw new ArrayIndexOutOfBoundsException("bad offset/length");
  3026             throw new ArrayIndexOutOfBoundsException("bad offset/length");
  3026         }
  3027         }
  3027         if (font.hasLayoutAttributes()) {
  3028         if (font.hasLayoutAttributes()) {
  3028             if (data.length == 0) {
  3029             if (data.length == 0) {
  3029                 return;
  3030                 return;
  3051 
  3052 
  3052     public void drawBytes(byte[] data, int offset, int length, int x, int y) {
  3053     public void drawBytes(byte[] data, int offset, int length, int x, int y) {
  3053         if (data == null) {
  3054         if (data == null) {
  3054             throw new NullPointerException("byte data is null");
  3055             throw new NullPointerException("byte data is null");
  3055         }
  3056         }
  3056         if (offset < 0 || length < 0 || offset + length > data.length) {
  3057         if (offset < 0 || length < 0 || offset + length < length ||
       
  3058             offset + length > data.length) {
  3057             throw new ArrayIndexOutOfBoundsException("bad offset/length");
  3059             throw new ArrayIndexOutOfBoundsException("bad offset/length");
  3058         }
  3060         }
  3059         /* Byte data is interpreted as 8-bit ASCII. Re-use drawChars loops */
  3061         /* Byte data is interpreted as 8-bit ASCII. Re-use drawChars loops */
  3060         char[] chData = new char[length];
  3062         char[] chData = new char[length];
  3061         for (int i = length; i-- > 0; ) {
  3063         for (int i = length; i-- > 0; ) {