src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeUint8ClampedArray.java

Print this page

        

*** 131,154 **** return setter; } private void setElem(final int index, final int elem) { try { final byte clamped; if ((elem & 0xffff_ff00) == 0) { ! clamped = (byte)elem; } else { ! clamped = elem < 0 ? 0 : (byte)0xff; } nb.put(index, clamped); } catch (final IndexOutOfBoundsException e) { - //swallow valid array indexes. it's ok. - if (index < 0) { throw new ClassCastException(); } } - } @Override public boolean isClamped() { return true; } --- 131,153 ---- return setter; } private void setElem(final int index, final int elem) { try { + if (index < nb.limit()) { final byte clamped; if ((elem & 0xffff_ff00) == 0) { ! clamped = (byte) elem; } else { ! clamped = elem < 0 ? 0 : (byte) 0xff; } nb.put(index, clamped); + } } catch (final IndexOutOfBoundsException e) { throw new ClassCastException(); } } @Override public boolean isClamped() { return true; }