/**
* Recycle the given tile.
*/
public void recycleTile(Raster tile) {
DataBuffer db = tile.getDataBuffer();
Long key = new Long(((long)db.getDataType() << 56) |
((long)db.getNumBanks() << 32) |
(long)db.getSize());
if(DEBUG) {
System.out.println("Recycling array for: "+
db.getDataType()+" "+
db.getNumBanks()+" "+
db.getSize());
//System.out.println("recycleTile(); key = "+key);
}
synchronized(recycledArrays) {
Object value = recycledArrays.get(key);
ArrayList arrays = null;
if(value != null) {
arrays = (ArrayList)value;
} else {
arrays = new ArrayList();
}
memoryUsed += getDataBankSize(db.getDataType(),
db.getNumBanks(),
db.getSize());
arrays.add(getBankReference(db));
if(value == null) {
recycledArrays.put(key, arrays);