summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gallerycommon/src/com/android/gallery3d/common/Utils.java14
-rw-r--r--src/com/android/gallery3d/app/AlbumPage.java5
-rw-r--r--src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java15
-rw-r--r--src/com/android/gallery3d/ui/AlbumSlidingWindow.java13
-rw-r--r--src/com/android/gallery3d/ui/DialogDetailsView.java6
-rw-r--r--src/com/android/gallery3d/ui/GLCanvas.java4
-rw-r--r--src/com/android/gallery3d/ui/GLCanvasImpl.java26
-rw-r--r--tests/src/com/android/gallery3d/ui/GLCanvasStub.java4
8 files changed, 47 insertions, 40 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/common/Utils.java b/gallerycommon/src/com/android/gallery3d/common/Utils.java
index ea289a628..6996015a3 100644
--- a/gallerycommon/src/com/android/gallery3d/common/Utils.java
+++ b/gallerycommon/src/com/android/gallery3d/common/Utils.java
@@ -54,12 +54,14 @@ public class Utils {
}
}
- // Throws AssertionError if the input is false.
- public static void assertTrue(boolean cond, String message, Object ... args) {
- if (!cond) {
- throw new AssertionError(
- args.length == 0 ? message : String.format(message, args));
- }
+ // Throws AssertionError with the message. We had a method having the form
+ // assertTrue(boolean cond, String message, Object ... args);
+ // However a call to that method will cause memory allocation even if the
+ // condition is false (due to autoboxing generated by "Object ... args"),
+ // so we don't use that anymore.
+ public static void fail(String message, Object ... args) {
+ throw new AssertionError(
+ args.length == 0 ? message : String.format(message, args));
}
// Throws NullPointerException if the input is null.
diff --git a/src/com/android/gallery3d/app/AlbumPage.java b/src/com/android/gallery3d/app/AlbumPage.java
index 22b189999..99d86f525 100644
--- a/src/com/android/gallery3d/app/AlbumPage.java
+++ b/src/com/android/gallery3d/app/AlbumPage.java
@@ -406,8 +406,9 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
private void initializeData(Bundle data) {
mMediaSetPath = Path.fromString(data.getString(KEY_MEDIA_PATH));
mMediaSet = mActivity.getDataManager().getMediaSet(mMediaSetPath);
- Utils.assertTrue(mMediaSet != null,
- "MediaSet is null. Path = %s", mMediaSetPath);
+ if (mMediaSet == null) {
+ Utils.fail("MediaSet is null. Path = %s", mMediaSetPath);
+ }
mSelectionManager.setSourceMediaSet(mMediaSet);
mAlbumDataAdapter = new AlbumDataAdapter(mActivity, mMediaSet);
mAlbumDataAdapter.setLoadingListener(new MyLoadingListener());
diff --git a/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java b/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java
index 3991a93fe..b02f19e90 100644
--- a/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java
+++ b/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java
@@ -110,9 +110,10 @@ public class AlbumSetSlidingWindow implements AlbumSetView.ModelListener {
}
public AlbumSetItem get(int slotIndex) {
- Utils.assertTrue(isActiveSlot(slotIndex),
- "invalid slot: %s outsides (%s, %s)",
- slotIndex, mActiveStart, mActiveEnd);
+ if (!isActiveSlot(slotIndex)) {
+ Utils.fail("invalid slot: %s outsides (%s, %s)",
+ slotIndex, mActiveStart, mActiveEnd);
+ }
return mData[slotIndex % mData.length];
}
@@ -156,10 +157,10 @@ public class AlbumSetSlidingWindow implements AlbumSetView.ModelListener {
}
public void setActiveWindow(int start, int end) {
- Utils.assertTrue(
- start <= end && end - start <= mData.length && end <= mSize,
- "start = %s, end = %s, length = %s, size = %s",
- start, end, mData.length, mSize);
+ if (!(start <= end && end - start <= mData.length && end <= mSize)) {
+ Utils.fail("start = %s, end = %s, length = %s, size = %s",
+ start, end, mData.length, mSize);
+ }
AlbumSetItem data[] = mData;
diff --git a/src/com/android/gallery3d/ui/AlbumSlidingWindow.java b/src/com/android/gallery3d/ui/AlbumSlidingWindow.java
index 6947d7fb9..d64c1f7ed 100644
--- a/src/com/android/gallery3d/ui/AlbumSlidingWindow.java
+++ b/src/com/android/gallery3d/ui/AlbumSlidingWindow.java
@@ -117,9 +117,10 @@ public class AlbumSlidingWindow implements AlbumView.ModelListener {
}
public DisplayItem get(int slotIndex) {
- Utils.assertTrue(isActiveSlot(slotIndex),
- "invalid slot: %s outsides (%s, %s)",
- slotIndex, mActiveStart, mActiveEnd);
+ if (!isActiveSlot(slotIndex)) {
+ Utils.fail("invalid slot: %s outsides (%s, %s)",
+ slotIndex, mActiveStart, mActiveEnd);
+ }
return mData[slotIndex % mData.length];
}
@@ -170,9 +171,9 @@ public class AlbumSlidingWindow implements AlbumView.ModelListener {
}
public void setActiveWindow(int start, int end) {
- Utils.assertTrue(start <= end
- && end - start <= mData.length && end <= mSize,
- "%s, %s, %s, %s", start, end, mData.length, mSize);
+ if (!(start <= end && end - start <= mData.length && end <= mSize)) {
+ Utils.fail("%s, %s, %s, %s", start, end, mData.length, mSize);
+ }
DisplayItem data[] = mData;
mActiveStart = start;
diff --git a/src/com/android/gallery3d/ui/DialogDetailsView.java b/src/com/android/gallery3d/ui/DialogDetailsView.java
index c037f2a26..580a40edb 100644
--- a/src/com/android/gallery3d/ui/DialogDetailsView.java
+++ b/src/com/android/gallery3d/ui/DialogDetailsView.java
@@ -173,8 +173,10 @@ public class DialogDetailsView implements DetailsViewContainer {
default: {
Object valueObj = detail.getValue();
// This shouldn't happen, log its key to help us diagnose the problem.
- Utils.assertTrue(valueObj != null, "%s's value is Null",
- DetailsHelper.getDetailsName(context, detail.getKey()));
+ if (valueObj == null) {
+ Utils.fail("%s's value is Null",
+ DetailsHelper.getDetailsName(context, detail.getKey()));
+ }
value = valueObj.toString();
}
}
diff --git a/src/com/android/gallery3d/ui/GLCanvas.java b/src/com/android/gallery3d/ui/GLCanvas.java
index eb78eddde..52ce615ae 100644
--- a/src/com/android/gallery3d/ui/GLCanvas.java
+++ b/src/com/android/gallery3d/ui/GLCanvas.java
@@ -60,10 +60,10 @@ public interface GLCanvas {
// Pushes the configuration state (matrix, alpha, and clip) onto
// a private stack.
- public int save();
+ public void save();
// Same as save(), but only save those specified in saveFlags.
- public int save(int saveFlags);
+ public void save(int saveFlags);
public static final int SAVE_FLAG_ALL = 0xFFFFFFFF;
public static final int SAVE_FLAG_CLIP = 0x01;
diff --git a/src/com/android/gallery3d/ui/GLCanvasImpl.java b/src/com/android/gallery3d/ui/GLCanvasImpl.java
index 85bf7716d..8775f0837 100644
--- a/src/com/android/gallery3d/ui/GLCanvasImpl.java
+++ b/src/com/android/gallery3d/ui/GLCanvasImpl.java
@@ -27,7 +27,7 @@ import android.opengl.Matrix;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
-import java.util.Stack;
+import java.util.ArrayList;
import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;
import javax.microedition.khronos.opengles.GL11Ext;
@@ -63,8 +63,8 @@ public class GLCanvasImpl implements GLCanvas {
private float mAlpha;
private final Rect mClipRect = new Rect();
- private final Stack<ConfigState> mRestoreStack =
- new Stack<ConfigState>();
+ private final ArrayList<ConfigState> mRestoreStack =
+ new ArrayList<ConfigState>();
private ConfigState mRecycledRestoreAction;
private final RectF mDrawTextureSourceRect = new RectF();
@@ -229,6 +229,7 @@ public class GLCanvasImpl implements GLCanvas {
}
public void rotate(float angle, float x, float y, float z) {
+ if (angle == 0) return;
float[] temp = mTempMatrix;
Matrix.setRotateM(temp, 0, angle, x, y, z);
Matrix.multiplyMM(temp, 16, mMatrixValues, 0, temp, 0);
@@ -361,10 +362,10 @@ public class GLCanvasImpl implements GLCanvas {
// draw the rect from bottom-left to top-right
float points[] = mapPoints(
mMatrixValues, x, y + height, x + width, y);
- x = Math.round(points[0]);
- y = Math.round(points[1]);
- width = Math.round(points[2]) - x;
- height = Math.round(points[3]) - y;
+ x = (int) (points[0] + 0.5f);
+ y = (int) (points[1] + 0.5f);
+ width = (int) (points[2] + 0.5f) - x;
+ height = (int) (points[3] + 0.5f) - y;
if (width > 0 && height > 0) {
((GL11Ext) mGL).glDrawTexiOES(x, y, 0, width, height);
mCountTextureOES++;
@@ -827,11 +828,11 @@ public class GLCanvasImpl implements GLCanvas {
}
}
- public int save() {
- return save(SAVE_FLAG_ALL);
+ public void save() {
+ save(SAVE_FLAG_ALL);
}
- public int save(int saveFlags) {
+ public void save(int saveFlags) {
ConfigState config = obtainRestoreConfig();
if ((saveFlags & SAVE_FLAG_ALPHA) != 0) {
@@ -852,13 +853,12 @@ public class GLCanvasImpl implements GLCanvas {
config.mMatrix[0] = Float.NEGATIVE_INFINITY;
}
- mRestoreStack.push(config);
- return mRestoreStack.size() - 1;
+ mRestoreStack.add(config);
}
public void restore() {
if (mRestoreStack.isEmpty()) throw new IllegalStateException();
- ConfigState config = mRestoreStack.pop();
+ ConfigState config = mRestoreStack.remove(mRestoreStack.size() - 1);
config.restore(this);
freeRestoreConfig(config);
}
diff --git a/tests/src/com/android/gallery3d/ui/GLCanvasStub.java b/tests/src/com/android/gallery3d/ui/GLCanvasStub.java
index 17d520daf..41de108ad 100644
--- a/tests/src/com/android/gallery3d/ui/GLCanvasStub.java
+++ b/tests/src/com/android/gallery3d/ui/GLCanvasStub.java
@@ -39,10 +39,10 @@ public class GLCanvasStub implements GLCanvas {
public boolean clipRect(int left, int top, int right, int bottom) {
throw new UnsupportedOperationException();
}
- public int save() {
+ public void save() {
throw new UnsupportedOperationException();
}
- public int save(int saveFlags) {
+ public void save(int saveFlags) {
throw new UnsupportedOperationException();
}
public void setBlendEnabled(boolean enabled) {}