< prev index next >
src/java.base/share/classes/java/io/InputStream.java
Print this page
rev 47874 : 8191516: OutputStream.write(byte[],int,int) could have fewer parameter bounds checks
Summary: Reduce parameter bounds checks from five to three as in InputStream::read
Reviewed-by: XXX
rev 47216 : 8187443: Forest Consolidation: Move files to unified layout
Reviewed-by: darcy, ihse
*** 1,7 ****
/*
! * Copyright (c) 1994, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1994, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 162,176 ****
* <code>len</code> is negative, or <code>len</code> is greater than
* <code>b.length - off</code>
* @see java.io.InputStream#read()
*/
public int read(byte b[], int off, int len) throws IOException {
! if (b == null) {
! throw new NullPointerException();
! } else if (off < 0 || len < 0 || len > b.length - off) {
! throw new IndexOutOfBoundsException();
! } else if (len == 0) {
return 0;
}
int c = read();
if (c == -1) {
--- 162,174 ----
* <code>len</code> is negative, or <code>len</code> is greater than
* <code>b.length - off</code>
* @see java.io.InputStream#read()
*/
public int read(byte b[], int off, int len) throws IOException {
! Objects.requireNonNull(b);
! Objects.checkFromIndexSize(off, len, b.length);
! if (len == 0) {
return 0;
}
int c = read();
if (c == -1) {
*** 300,311 ****
*
* @since 9
*/
public int readNBytes(byte[] b, int off, int len) throws IOException {
Objects.requireNonNull(b);
! if (off < 0 || len < 0 || len > b.length - off)
! throw new IndexOutOfBoundsException();
int n = 0;
while (n < len) {
int count = read(b, off + n, len - n);
if (count < 0)
break;
--- 298,309 ----
*
* @since 9
*/
public int readNBytes(byte[] b, int off, int len) throws IOException {
Objects.requireNonNull(b);
! Objects.checkFromIndexSize(off, len, b.length);
!
int n = 0;
while (n < len) {
int count = read(b, off + n, len - n);
if (count < 0)
break;
< prev index next >