1897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar/* 2897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * Copyright (C) 2010 The Android Open Source Project 3897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * 4897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * Licensed under the Apache License, Version 2.0 (the "License"); 5897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * you may not use this file except in compliance with the License. 6897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * You may obtain a copy of the License at 7897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * 8897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * http://www.apache.org/licenses/LICENSE-2.0 9897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * 109b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * Unless required by applicable law or agreed to in writing, software 11897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar * distributed under the License is distributed on an "AS IS" BASIS, 12b18b8ad63061c23daf4d95b022764027739691d8Dan Gohman * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1355fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth * See the License for the specific language governing permissions and 1406057cef0bcd7804e80f3ce2bbe352178396c715Chandler Carruth * limitations under the License. 15897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar */ 16651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpackage com.android.gallery3d.glrenderer; 186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic class IntArray { 200e2c34f92f00628d48968dfea096d36381f494cbStephen Hines private static final int INIT_CAPACITY = 8; 210e2c34f92f00628d48968dfea096d36381f494cbStephen Hines 22651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines private int mData[] = new int[INIT_CAPACITY]; 234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar private int mSize = 0; 24897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar 25897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar public void add(int value) { 263b844ba7d5be205a9b4f5f0b0d1b7978977f4b8cChandler Carruth if (mData.length == mSize) { 274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int temp[] = new int[mSize + mSize]; 28651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines System.arraycopy(mData, 0, temp, 0, mSize); 290e2c34f92f00628d48968dfea096d36381f494cbStephen Hines mData = temp; 303b844ba7d5be205a9b4f5f0b0d1b7978977f4b8cChandler Carruth } 31651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines mData[mSize++] = value; 32693769cafc218ff31393e0bf43cd3dcf21a36be2Evan Cheng } 334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 34897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar public int removeLast() { 35897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar mSize--; 36a6b4045dc462c03cd1e7cb9c3ec9dbfdb9c6ad62Evan Cheng return mData[mSize]; 37897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar } 38897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar 39897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar public int size() { 40897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar return mSize; 41176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines } 42cf565c57371b3d294a1737c8f3924491d2fe8e3eRafael Espindola 43cf565c57371b3d294a1737c8f3924491d2fe8e3eRafael Espindola // For testing only 4455fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth public int[] toArray(int[] result) { 4523d5b090cb11078714139bdb5a30d814e3443c4cMichael Gottesman if (result == null || result.length < mSize) { 46cf565c57371b3d294a1737c8f3924491d2fe8e3eRafael Espindola result = new int[mSize]; 474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 480e2c34f92f00628d48968dfea096d36381f494cbStephen Hines System.arraycopy(mData, 0, result, 0, mSize); 49651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return result; 50897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar } 51897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar 52897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar public int[] getInternalArray() { 53897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar return mData; 54897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar } 55897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar 56d6471f7c1921c7802804ce3ff6fe9768310f72b9David Blaikie public void clear() { 57897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar mSize = 0; 583aaeccc597fa49e5b5aa9c197ef699d2c19ec86bNick Lewycky if (mData.length != INIT_CAPACITY) mData = new int[INIT_CAPACITY]; 59b18b8ad63061c23daf4d95b022764027739691d8Dan Gohman } 60897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar} 61897c6768db8e09c692009280d9f1d71fb17023bfDaniel Dunbar