1 /*
2  * Copyright (C) 2010 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 com.android.gallery3d.glrenderer;
18 
19 public class IntArray {
20     private static final int INIT_CAPACITY = 8;
21 
22     private int mData[] = new int[INIT_CAPACITY];
23     private int mSize = 0;
24 
add(int value)25     public void add(int value) {
26         if (mData.length == mSize) {
27             int temp[] = new int[mSize + mSize];
28             System.arraycopy(mData, 0, temp, 0, mSize);
29             mData = temp;
30         }
31         mData[mSize++] = value;
32     }
33 
removeLast()34     public int removeLast() {
35         mSize--;
36         return mData[mSize];
37     }
38 
size()39     public int size() {
40         return mSize;
41     }
42 
43     // For testing only
toArray(int[] result)44     public int[] toArray(int[] result) {
45         if (result == null || result.length < mSize) {
46             result = new int[mSize];
47         }
48         System.arraycopy(mData, 0, result, 0, mSize);
49         return result;
50     }
51 
getInternalArray()52     public int[] getInternalArray() {
53         return mData;
54     }
55 
clear()56     public void clear() {
57         mSize = 0;
58         if (mData.length != INIT_CAPACITY) mData = new int[INIT_CAPACITY];
59     }
60 }
61