package org.osmdroid.tileprovider;

import java.util.LinkedList;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;

public class BitmapPool {
	final LinkedList<Bitmap> mPool = new LinkedList<Bitmap>();

	private static BitmapPool sInstance;

	public static BitmapPool getInstance() {
		if (sInstance == null)
			sInstance = new BitmapPool();

		return sInstance;
	}

	public void returnDrawableToPool(ReusableBitmapDrawable drawable) {
		Bitmap b = drawable.tryRecycle();
		if (b != null && b.isMutable())
			synchronized (mPool) {
				mPool.addLast(b);
			}
	}

	public void applyReusableOptions(BitmapFactory.Options bitmapOptions) {
		if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
			Bitmap pooledBitmap = obtainBitmapFromPool();
			bitmapOptions.inBitmap = pooledBitmap;
			bitmapOptions.inSampleSize = 1;
			bitmapOptions.inMutable = true;
		}
	}

	public Bitmap obtainBitmapFromPool() {
		final Bitmap b;
		synchronized (mPool) {
			if (mPool.size() == 0)
				return null;
			else
				b = mPool.removeFirst();
		}

		return b;
	}
}

@@ -734,16 +734,17 @@
 DK_INT %3E
+=
  Build.V

Version check should be >= instead of > See issue 452.