am 7290d93d: Merge "Yell loudly about undefined behind in Bitmap, but work anyway" into mnc-dev

* commit '7290d93df99de9d21ac8a9ddf72bc095b319af4b':
  Yell loudly about undefined behind in Bitmap, but work anyway
This commit is contained in:
John Reck
2015-08-04 01:00:04 +00:00
committed by Android Git Automerger
2 changed files with 30 additions and 7 deletions

View File

@ -218,7 +218,6 @@ int Bitmap::getAshmemFd() const {
} }
const SkImageInfo& Bitmap::info() const { const SkImageInfo& Bitmap::info() const {
assertValid();
return mPixelRef->info(); return mPixelRef->info();
} }

View File

@ -23,6 +23,7 @@ import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import android.os.Trace; import android.os.Trace;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log;
import dalvik.system.VMRuntime; import dalvik.system.VMRuntime;
@ -33,6 +34,8 @@ import java.nio.IntBuffer;
import java.nio.ShortBuffer; import java.nio.ShortBuffer;
public final class Bitmap implements Parcelable { public final class Bitmap implements Parcelable {
private static final String TAG = "Bitmap";
/** /**
* Indicates that the bitmap was created for an unknown pixel density. * Indicates that the bitmap was created for an unknown pixel density.
* *
@ -159,6 +162,9 @@ public final class Bitmap implements Parcelable {
* @see #DENSITY_NONE * @see #DENSITY_NONE
*/ */
public int getDensity() { public int getDensity() {
if (mRecycled) {
Log.w(TAG, "Called getDensity() on a recycle()'d bitmap! This is undefined behavior!");
}
return mDensity; return mDensity;
} }
@ -330,7 +336,9 @@ public final class Bitmap implements Parcelable {
* @return The current generation ID for this bitmap. * @return The current generation ID for this bitmap.
*/ */
public int getGenerationId() { public int getGenerationId() {
if (mRecycled) return 0; if (mRecycled) {
Log.w(TAG, "Called getGenerationId() on a recycle()'d bitmap! This is undefined behavior!");
}
return nativeGenerationId(mFinalizer.mNativeBitmap); return nativeGenerationId(mFinalizer.mNativeBitmap);
} }
@ -1057,7 +1065,9 @@ public final class Bitmap implements Parcelable {
* @see BitmapFactory.Options#inPremultiplied * @see BitmapFactory.Options#inPremultiplied
*/ */
public final boolean isPremultiplied() { public final boolean isPremultiplied() {
if (mRecycled) return false; if (mRecycled) {
Log.w(TAG, "Called isPremultiplied() on a recycle()'d bitmap! This is undefined behavior!");
}
return nativeIsPremultiplied(mFinalizer.mNativeBitmap); return nativeIsPremultiplied(mFinalizer.mNativeBitmap);
} }
@ -1089,11 +1099,17 @@ public final class Bitmap implements Parcelable {
/** Returns the bitmap's width */ /** Returns the bitmap's width */
public final int getWidth() { public final int getWidth() {
if (mRecycled) {
Log.w(TAG, "Called getWidth() on a recycle()'d bitmap! This is undefined behavior!");
}
return mWidth; return mWidth;
} }
/** Returns the bitmap's height */ /** Returns the bitmap's height */
public final int getHeight() { public final int getHeight() {
if (mRecycled) {
Log.w(TAG, "Called getHeight() on a recycle()'d bitmap! This is undefined behavior!");
}
return mHeight; return mHeight;
} }
@ -1176,7 +1192,9 @@ public final class Bitmap implements Parcelable {
* @return number of bytes between rows of the native bitmap pixels. * @return number of bytes between rows of the native bitmap pixels.
*/ */
public final int getRowBytes() { public final int getRowBytes() {
if (mRecycled) return 0; if (mRecycled) {
Log.w(TAG, "Called getRowBytes() on a recycle()'d bitmap! This is undefined behavior!");
}
return nativeRowBytes(mFinalizer.mNativeBitmap); return nativeRowBytes(mFinalizer.mNativeBitmap);
} }
@ -1220,7 +1238,9 @@ public final class Bitmap implements Parcelable {
* that config, otherwise return null. * that config, otherwise return null.
*/ */
public final Config getConfig() { public final Config getConfig() {
if (mRecycled) return Config.ARGB_8888; if (mRecycled) {
Log.w(TAG, "Called getConfig() on a recycle()'d bitmap! This is undefined behavior!");
}
return Config.nativeToConfig(nativeConfig(mFinalizer.mNativeBitmap)); return Config.nativeToConfig(nativeConfig(mFinalizer.mNativeBitmap));
} }
@ -1233,7 +1253,9 @@ public final class Bitmap implements Parcelable {
* it will return true by default. * it will return true by default.
*/ */
public final boolean hasAlpha() { public final boolean hasAlpha() {
if (mRecycled) return false; if (mRecycled) {
Log.w(TAG, "Called hasAlpha() on a recycle()'d bitmap! This is undefined behavior!");
}
return nativeHasAlpha(mFinalizer.mNativeBitmap); return nativeHasAlpha(mFinalizer.mNativeBitmap);
} }
@ -1270,7 +1292,9 @@ public final class Bitmap implements Parcelable {
* @see #setHasMipMap(boolean) * @see #setHasMipMap(boolean)
*/ */
public final boolean hasMipMap() { public final boolean hasMipMap() {
if (mRecycled) return false; if (mRecycled) {
Log.w(TAG, "Called hasMipMap() on a recycle()'d bitmap! This is undefined behavior!");
}
return nativeHasMipMap(mFinalizer.mNativeBitmap); return nativeHasMipMap(mFinalizer.mNativeBitmap);
} }