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;
}