219 arrays[tail++] = array; 220 221 if (DO_STATS) { 222 stats.updateMaxSize(tail); 223 } 224 } else if (DO_CHECKS) { 225 logInfo(getLogPrefix(clean) + "IntArrayCache: " 226 + "array capacity exceeded !"); 227 } 228 } 229 } 230 231 static int[] createArray(final int length, final boolean clean) { 232 if (clean) { 233 return new int[length]; 234 } 235 // use JDK9 Unsafe.allocateUninitializedArray(class, length): 236 return (int[]) OffHeapArray.UNSAFE.allocateUninitializedArray(int.class, length); 237 } 238 239 public static void fill(final int[] array, final int fromIndex, 240 final int toIndex, final int value) 241 { 242 // clear array data: 243 Arrays.fill(array, fromIndex, toIndex, value); 244 if (DO_CHECKS) { 245 check(array, fromIndex, toIndex, value); 246 } 247 } 248 249 public static void check(final int[] array, final int fromIndex, 250 final int toIndex, final int value) 251 { 252 if (DO_CHECKS) { 253 // check zero on full array: 254 for (int i = 0; i < array.length; i++) { 255 if (array[i] != value) { 256 logException("Invalid value at: " + i + " = " + array[i] 257 + " from: " + fromIndex + " to: " + toIndex + "\n" 258 + Arrays.toString(array), new Throwable()); 259 260 // ensure array is correctly filled: | 219 arrays[tail++] = array; 220 221 if (DO_STATS) { 222 stats.updateMaxSize(tail); 223 } 224 } else if (DO_CHECKS) { 225 logInfo(getLogPrefix(clean) + "IntArrayCache: " 226 + "array capacity exceeded !"); 227 } 228 } 229 } 230 231 static int[] createArray(final int length, final boolean clean) { 232 if (clean) { 233 return new int[length]; 234 } 235 // use JDK9 Unsafe.allocateUninitializedArray(class, length): 236 return (int[]) OffHeapArray.UNSAFE.allocateUninitializedArray(int.class, length); 237 } 238 239 static void fill(final int[] array, final int fromIndex, 240 final int toIndex, final int value) 241 { 242 // clear array data: 243 Arrays.fill(array, fromIndex, toIndex, value); 244 if (DO_CHECKS) { 245 check(array, fromIndex, toIndex, value); 246 } 247 } 248 249 public static void check(final int[] array, final int fromIndex, 250 final int toIndex, final int value) 251 { 252 if (DO_CHECKS) { 253 // check zero on full array: 254 for (int i = 0; i < array.length; i++) { 255 if (array[i] != value) { 256 logException("Invalid value at: " + i + " = " + array[i] 257 + " from: " + fromIndex + " to: " + toIndex + "\n" 258 + Arrays.toString(array), new Throwable()); 259 260 // ensure array is correctly filled: |