• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Copyright 2014 The Android Open Source Project
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.conscrypt.util;
18  
19  /**
20   * Compatibility utility for Arrays.
21   */
22  public final class ArrayUtils {
ArrayUtils()23      private ArrayUtils() {
24      }
25  
26      /**
27       * Checks that the range described by {@code offset} and {@code count}
28       * doesn't exceed {@code arrayLength}.
29       *
30       * @hide
31       */
checkOffsetAndCount(int arrayLength, int offset, int count)32      public static final void checkOffsetAndCount(int arrayLength, int offset, int count) {
33          if ((offset | count) < 0 || offset > arrayLength || arrayLength - offset < count) {
34              throw new ArrayIndexOutOfBoundsException("length=" + arrayLength + "; regionStart="
35                      + offset + "; regionLength=" + count);
36          }
37      }
38  }
39