Fix missing class warnings on old platforms. Also fix BaseObj.equals.
Change-Id: I7deb528815d98e3359eb5e8c801d6fa71b90bab8
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java b/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
index 2088a04..153019d 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
@@ -51,12 +51,6 @@
*/
int getID(RenderScript rs) {
mRS.validate();
- if (rs.isNative) {
- RenderScriptThunker rst = (RenderScriptThunker)rs;
- if (getNObj() != null) {
- return getNObj().hashCode();
- }
- }
if (mDestroyed) {
throw new RSInvalidStateException("using a destroyed object.");
}
@@ -150,6 +144,10 @@
return false;
}
+ if (mRS.isNative) {
+ return ((RenderScriptThunker)mRS).equals((Object)this, obj);
+ }
+
BaseObj b = (BaseObj) obj;
return mID == b.mID;
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
index eb51076..ffdb66f 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
@@ -29,14 +29,14 @@
*
**/
public class FieldPacker {
- private android.renderscript.FieldPacker mN;
+ private FieldPackerThunker mN;
public FieldPacker(int len) {
mPos = 0;
mLen = len;
mData = new byte[len];
if (RenderScript.shouldThunk()) {
- mN = new android.renderscript.FieldPacker(len);
+ mN = new FieldPackerThunker(len);
}
}
@@ -209,11 +209,7 @@
public void addObj(BaseObj obj) {
if (RenderScript.shouldThunk()) {
- if (obj != null) {
- mN.addObj(obj.getNObj());
- } else {
- mN.addObj(null);
- }
+ mN.addObj(obj);
return;
}
if (obj != null) {
@@ -225,7 +221,7 @@
public void addF32(Float2 v) {
if (RenderScript.shouldThunk()) {
- mN.addF32(new android.renderscript.Float2(v.x, v.y));
+ mN.addF32(v);
return;
}
addF32(v.x);
@@ -233,7 +229,7 @@
}
public void addF32(Float3 v) {
if (RenderScript.shouldThunk()) {
- mN.addF32(new android.renderscript.Float3(v.x, v.y, v.z));
+ mN.addF32(v);
return;
}
addF32(v.x);
@@ -242,7 +238,7 @@
}
public void addF32(Float4 v) {
if (RenderScript.shouldThunk()) {
- mN.addF32(new android.renderscript.Float4(v.x, v.y, v.z, v.w));
+ mN.addF32(v);
return;
}
addF32(v.x);
@@ -253,7 +249,7 @@
public void addF64(Double2 v) {
if (RenderScript.shouldThunk()) {
- mN.addF64(new android.renderscript.Double2(v.x, v.y));
+ mN.addF64(v);
return;
}
addF64(v.x);
@@ -261,7 +257,7 @@
}
public void addF64(Double3 v) {
if (RenderScript.shouldThunk()) {
- mN.addF64(new android.renderscript.Double3(v.x, v.y, v.z));
+ mN.addF64(v);
return;
}
addF64(v.x);
@@ -270,7 +266,7 @@
}
public void addF64(Double4 v) {
if (RenderScript.shouldThunk()) {
- mN.addF64(new android.renderscript.Double4(v.x, v.y, v.z, v.w));
+ mN.addF64(v);
return;
}
addF64(v.x);
@@ -281,7 +277,7 @@
public void addI8(Byte2 v) {
if (RenderScript.shouldThunk()) {
- mN.addI8(new android.renderscript.Byte2(v.x, v.y));
+ mN.addI8(v);
return;
}
addI8(v.x);
@@ -289,7 +285,7 @@
}
public void addI8(Byte3 v) {
if (RenderScript.shouldThunk()) {
- mN.addI8(new android.renderscript.Byte3(v.x, v.y, v.z));
+ mN.addI8(v);
return;
}
addI8(v.x);
@@ -298,7 +294,7 @@
}
public void addI8(Byte4 v) {
if (RenderScript.shouldThunk()) {
- mN.addI8(new android.renderscript.Byte4(v.x, v.y, v.z, v.w));
+ mN.addI8(v);
return;
}
addI8(v.x);
@@ -309,7 +305,7 @@
public void addU8(Short2 v) {
if (RenderScript.shouldThunk()) {
- mN.addU8(new android.renderscript.Short2(v.x, v.y));
+ mN.addU8(v);
return;
}
addU8(v.x);
@@ -317,7 +313,7 @@
}
public void addU8(Short3 v) {
if (RenderScript.shouldThunk()) {
- mN.addU8(new android.renderscript.Short3(v.x, v.y, v.z));
+ mN.addU8(v);
return;
}
addU8(v.x);
@@ -326,7 +322,7 @@
}
public void addU8(Short4 v) {
if (RenderScript.shouldThunk()) {
- mN.addU8(new android.renderscript.Short4(v.x, v.y, v.z, v.w));
+ mN.addU8(v);
return;
}
addU8(v.x);
@@ -337,7 +333,7 @@
public void addI16(Short2 v) {
if (RenderScript.shouldThunk()) {
- mN.addI16(new android.renderscript.Short2(v.x, v.y));
+ mN.addI16(v);
return;
}
addI16(v.x);
@@ -345,7 +341,7 @@
}
public void addI16(Short3 v) {
if (RenderScript.shouldThunk()) {
- mN.addI16(new android.renderscript.Short3(v.x, v.y, v.z));
+ mN.addI16(v);
return;
}
addI16(v.x);
@@ -354,7 +350,7 @@
}
public void addI16(Short4 v) {
if (RenderScript.shouldThunk()) {
- mN.addI16(new android.renderscript.Short4(v.x, v.y, v.z, v.w));
+ mN.addI16(v);
return;
}
addI16(v.x);
@@ -365,7 +361,7 @@
public void addU16(Int2 v) {
if (RenderScript.shouldThunk()) {
- mN.addU16(new android.renderscript.Int2(v.x, v.y));
+ mN.addU16(v);
return;
}
addU16(v.x);
@@ -373,7 +369,7 @@
}
public void addU16(Int3 v) {
if (RenderScript.shouldThunk()) {
- mN.addU16(new android.renderscript.Int3(v.x, v.y, v.z));
+ mN.addU16(v);
return;
}
addU16(v.x);
@@ -382,7 +378,7 @@
}
public void addU16(Int4 v) {
if (RenderScript.shouldThunk()) {
- mN.addU16(new android.renderscript.Int4(v.x, v.y, v.z, v.w));
+ mN.addU16(v);
return;
}
addU16(v.x);
@@ -393,7 +389,7 @@
public void addI32(Int2 v) {
if (RenderScript.shouldThunk()) {
- mN.addI32(new android.renderscript.Int2(v.x, v.y));
+ mN.addI32(v);
return;
}
addI32(v.x);
@@ -401,7 +397,7 @@
}
public void addI32(Int3 v) {
if (RenderScript.shouldThunk()) {
- mN.addI32(new android.renderscript.Int3(v.x, v.y, v.z));
+ mN.addI32(v);
return;
}
addI32(v.x);
@@ -410,7 +406,7 @@
}
public void addI32(Int4 v) {
if (RenderScript.shouldThunk()) {
- mN.addI32(new android.renderscript.Int4(v.x, v.y, v.z, v.w));
+ mN.addI32(v);
return;
}
addI32(v.x);
@@ -421,7 +417,7 @@
public void addU32(Long2 v) {
if (RenderScript.shouldThunk()) {
- mN.addU32(new android.renderscript.Long2(v.x, v.y));
+ mN.addU32(v);
return;
}
addU32(v.x);
@@ -429,7 +425,7 @@
}
public void addU32(Long3 v) {
if (RenderScript.shouldThunk()) {
- mN.addU32(new android.renderscript.Long3(v.x, v.y, v.z));
+ mN.addU32(v);
return;
}
addU32(v.x);
@@ -438,7 +434,7 @@
}
public void addU32(Long4 v) {
if (RenderScript.shouldThunk()) {
- mN.addU32(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
+ mN.addU32(v);
return;
}
addU32(v.x);
@@ -449,7 +445,7 @@
public void addI64(Long2 v) {
if (RenderScript.shouldThunk()) {
- mN.addI64(new android.renderscript.Long2(v.x, v.y));
+ mN.addI64(v);
return;
}
addI64(v.x);
@@ -457,7 +453,7 @@
}
public void addI64(Long3 v) {
if (RenderScript.shouldThunk()) {
- mN.addI64(new android.renderscript.Long3(v.x, v.y, v.z));
+ mN.addI64(v);
return;
}
addI64(v.x);
@@ -466,7 +462,7 @@
}
public void addI64(Long4 v) {
if (RenderScript.shouldThunk()) {
- mN.addI64(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
+ mN.addI64(v);
return;
}
addI64(v.x);
@@ -477,7 +473,7 @@
public void addU64(Long2 v) {
if (RenderScript.shouldThunk()) {
- mN.addU64(new android.renderscript.Long2(v.x, v.y));
+ mN.addU64(v);
return;
}
addU64(v.x);
@@ -485,7 +481,7 @@
}
public void addU64(Long3 v) {
if (RenderScript.shouldThunk()) {
- mN.addU64(new android.renderscript.Long3(v.x, v.y, v.z));
+ mN.addU64(v);
return;
}
addU64(v.x);
@@ -494,7 +490,7 @@
}
public void addU64(Long4 v) {
if (RenderScript.shouldThunk()) {
- mN.addU64(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
+ mN.addU64(v);
return;
}
addU64(v.x);
@@ -505,7 +501,7 @@
public void addMatrix(Matrix4f v) {
if (RenderScript.shouldThunk()) {
- mN.addMatrix(new android.renderscript.Matrix4f(v.getArray()));
+ mN.addMatrix(v);
return;
}
for (int i=0; i < v.mMat.length; i++) {
@@ -515,7 +511,7 @@
public void addMatrix(Matrix3f v) {
if (RenderScript.shouldThunk()) {
- mN.addMatrix(new android.renderscript.Matrix3f(v.getArray()));
+ mN.addMatrix(v);
return;
}
for (int i=0; i < v.mMat.length; i++) {
@@ -525,7 +521,7 @@
public void addMatrix(Matrix2f v) {
if (RenderScript.shouldThunk()) {
- mN.addMatrix(new android.renderscript.Matrix2f(v.getArray()));
+ mN.addMatrix(v);
return;
}
for (int i=0; i < v.mMat.length; i++) {
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPackerThunker.java b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPackerThunker.java
new file mode 100644
index 0000000..3e990f6
--- /dev/null
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPackerThunker.java
@@ -0,0 +1,223 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v8.renderscript;
+
+import android.os.SystemProperties;
+import android.support.v8.renderscript.RenderScript;
+
+/**
+ * Utility class for packing arguments and structures from Android system objects to
+ * RenderScript objects.
+ *
+ * This class is only intended to be used to support the
+ * reflected code generated by the RS tool chain. It should not
+ * be called directly.
+ *
+ **/
+public class FieldPackerThunker {
+ private android.renderscript.FieldPacker mN;
+
+ public FieldPackerThunker(int len) {
+ mN = new android.renderscript.FieldPacker(len);
+ }
+
+ void align(int v) {
+ mN.align(v);
+ }
+
+ void reset() {
+ mN.reset();
+ }
+
+ void reset(int i) {
+ mN.reset(i);
+ }
+
+ public void skip(int i) {
+ mN.skip(i);
+ }
+
+ public void addI8(byte v) {
+ mN.addI8(v);
+ }
+
+ public void addI16(short v) {
+ mN.addI16(v);
+ }
+
+ public void addI32(int v) {
+ mN.addI32(v);
+ }
+
+ public void addI64(long v) {
+ mN.addI64(v);
+ }
+
+ public void addU8(short v) {
+ mN.addU8(v);
+ }
+
+ public void addU16(int v) {
+ mN.addU16(v);
+ }
+
+ public void addU32(long v) {
+ mN.addU32(v);
+ }
+
+ public void addU64(long v) {
+ mN.addU64(v);
+ }
+
+ public void addF32(float v) {
+ mN.addF32(v);
+ }
+
+ public void addF64(double v) {
+ mN.addF64(v);
+ }
+
+ public void addObj(BaseObj obj) {
+ if (obj != null) {
+ mN.addObj(obj.getNObj());
+ } else {
+ mN.addObj(null);
+ }
+ }
+
+ public void addF32(Float2 v) {
+ mN.addF32(new android.renderscript.Float2(v.x, v.y));
+ }
+ public void addF32(Float3 v) {
+ mN.addF32(new android.renderscript.Float3(v.x, v.y, v.z));
+ }
+ public void addF32(Float4 v) {
+ mN.addF32(new android.renderscript.Float4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addF64(Double2 v) {
+ mN.addF64(new android.renderscript.Double2(v.x, v.y));
+ }
+ public void addF64(Double3 v) {
+ mN.addF64(new android.renderscript.Double3(v.x, v.y, v.z));
+ }
+ public void addF64(Double4 v) {
+ mN.addF64(new android.renderscript.Double4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addI8(Byte2 v) {
+ mN.addI8(new android.renderscript.Byte2(v.x, v.y));
+ }
+ public void addI8(Byte3 v) {
+ mN.addI8(new android.renderscript.Byte3(v.x, v.y, v.z));
+ }
+ public void addI8(Byte4 v) {
+ mN.addI8(new android.renderscript.Byte4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addU8(Short2 v) {
+ mN.addU8(new android.renderscript.Short2(v.x, v.y));
+ }
+ public void addU8(Short3 v) {
+ mN.addU8(new android.renderscript.Short3(v.x, v.y, v.z));
+ }
+ public void addU8(Short4 v) {
+ mN.addU8(new android.renderscript.Short4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addI16(Short2 v) {
+ mN.addI16(new android.renderscript.Short2(v.x, v.y));
+ }
+ public void addI16(Short3 v) {
+ mN.addI16(new android.renderscript.Short3(v.x, v.y, v.z));
+ }
+ public void addI16(Short4 v) {
+ mN.addI16(new android.renderscript.Short4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addU16(Int2 v) {
+ mN.addU16(new android.renderscript.Int2(v.x, v.y));
+ }
+ public void addU16(Int3 v) {
+ mN.addU16(new android.renderscript.Int3(v.x, v.y, v.z));
+ }
+ public void addU16(Int4 v) {
+ mN.addU16(new android.renderscript.Int4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addI32(Int2 v) {
+ mN.addI32(new android.renderscript.Int2(v.x, v.y));
+ }
+ public void addI32(Int3 v) {
+ mN.addI32(new android.renderscript.Int3(v.x, v.y, v.z));
+ }
+ public void addI32(Int4 v) {
+ mN.addI32(new android.renderscript.Int4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addU32(Long2 v) {
+ mN.addU32(new android.renderscript.Long2(v.x, v.y));
+ }
+ public void addU32(Long3 v) {
+ mN.addU32(new android.renderscript.Long3(v.x, v.y, v.z));
+ }
+ public void addU32(Long4 v) {
+ mN.addU32(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addI64(Long2 v) {
+ mN.addI64(new android.renderscript.Long2(v.x, v.y));
+ }
+ public void addI64(Long3 v) {
+ mN.addI64(new android.renderscript.Long3(v.x, v.y, v.z));
+ }
+ public void addI64(Long4 v) {
+ mN.addI64(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addU64(Long2 v) {
+ mN.addU64(new android.renderscript.Long2(v.x, v.y));
+ }
+ public void addU64(Long3 v) {
+ mN.addU64(new android.renderscript.Long3(v.x, v.y, v.z));
+ }
+ public void addU64(Long4 v) {
+ mN.addU64(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
+ }
+
+ public void addMatrix(Matrix4f v) {
+ mN.addMatrix(new android.renderscript.Matrix4f(v.getArray()));
+ }
+
+ public void addMatrix(Matrix3f v) {
+ mN.addMatrix(new android.renderscript.Matrix3f(v.getArray()));
+ }
+
+ public void addMatrix(Matrix2f v) {
+ mN.addMatrix(new android.renderscript.Matrix2f(v.getArray()));
+ }
+
+ public void addBoolean(boolean v) {
+ mN.addBoolean(v);
+ }
+
+ public final byte[] getData() {
+ return mN.getData();
+ }
+}
+
+
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
index ae67db1..7efbed2 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
@@ -768,16 +768,7 @@
mMessageCallback = msg;
if (isNative) {
RenderScriptThunker rst = (RenderScriptThunker) this;
- android.renderscript.RenderScript.RSMessageHandler newmsg =
- new android.renderscript.RenderScript.RSMessageHandler() {
- public void run() {
- mMessageCallback.mData = mData;
- mMessageCallback.mID = mID;
- mMessageCallback.mLength = mLength;
- mMessageCallback.run();
- }
- };
- rst.mN.setMessageHandler(newmsg);
+ rst.setMessageHandler(msg);
}
}
public RSMessageHandler getMessageHandler() {
@@ -823,15 +814,7 @@
mErrorCallback = msg;
if (isNative) {
RenderScriptThunker rst = (RenderScriptThunker) this;
- android.renderscript.RenderScript.RSErrorHandler newmsg =
- new android.renderscript.RenderScript.RSErrorHandler() {
- public void run() {
- mErrorCallback.mErrorMessage = mErrorMessage;
- mErrorCallback.mErrorNum = mErrorNum;
- mErrorCallback.run();
- }
- };
- rst.mN.setErrorHandler(newmsg);
+ rst.setErrorHandler(msg);
}
}
public RSErrorHandler getErrorHandler() {
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
index daf0b26..aa787c0a 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScriptThunker.java
@@ -85,4 +85,11 @@
}
}
+
+ boolean equals(Object obj1, Object obj2) {
+ if (obj2 instanceof android.support.v8.renderscript.BaseObj) {
+ return ((android.renderscript.BaseObj)obj1).equals(((android.support.v8.renderscript.BaseObj)obj2).getNObj());
+ }
+ return false;
+ }
}