Remove bitmap::getBitmapAllocationByteCount
Test: I7eb02bc2389aadc10ee0b65993bb7e2dab27a129 Also remove gBitmap_getAllocationByteCountMethodID. These called into Java, which then called back into native. Instead, call the native method directly. The only extra wrinkle is that the Java method returns 0 if (mRecycled). But we would never reach that return value, since if it was recycled, we would have crashed in native Bitmap::assertValid. Instead, throw an IllegalArgumentException when attempting to reuse it. This avoids the overhead of two JNI calls, which tend to be slow. Change-Id: I29e8d2428036252cfad532b1351e3a3d33817b43
This commit is contained in:
@@ -436,9 +436,15 @@ public class BitmapFactory {
|
||||
static void validate(Options opts) {
|
||||
if (opts == null) return;
|
||||
|
||||
if (opts.inBitmap != null && opts.inBitmap.getConfig() == Bitmap.Config.HARDWARE) {
|
||||
throw new IllegalArgumentException(
|
||||
"Bitmaps with Config.HARDWARE are always immutable");
|
||||
if (opts.inBitmap != null) {
|
||||
if (opts.inBitmap.getConfig() == Bitmap.Config.HARDWARE) {
|
||||
throw new IllegalArgumentException(
|
||||
"Bitmaps with Config.HARDWARE are always immutable");
|
||||
}
|
||||
if (opts.inBitmap.isRecycled()) {
|
||||
throw new IllegalArgumentException(
|
||||
"Cannot reuse a recycled Bitmap");
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.inMutable && opts.inPreferredConfig == Bitmap.Config.HARDWARE) {
|
||||
|
||||
Reference in New Issue
Block a user