summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFredrik Roubert <roubert@google.com>2015-07-28 01:28:25 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-07-28 01:28:25 +0000
commit94f2ce5ff743580829bdcabbba795918ea760769 (patch)
treeb1dbb0cd27a0b73feabae818756d54ad0e2ba49b
parent3263c26a2d0a9560881ab22c0101b0bf91b0bff6 (diff)
parentaf50e415a187190488d4694f307c23705203c53e (diff)
downloadandroid_art-94f2ce5ff743580829bdcabbba795918ea760769.tar.gz
android_art-94f2ce5ff743580829bdcabbba795918ea760769.tar.bz2
android_art-94f2ce5ff743580829bdcabbba795918ea760769.zip
am af50e415: Bugfix: Java char is 16 bits, can not be treated as boolean.
* commit 'af50e415a187190488d4694f307c23705203c53e': Bugfix: Java char is 16 bits, can not be treated as boolean.
-rw-r--r--runtime/native/java_lang_reflect_Field.cc4
-rw-r--r--test/046-reflect/expected.txt2
-rw-r--r--test/046-reflect/src/Main.java2
-rw-r--r--test/100-reflect2/expected.txt2
-rw-r--r--test/100-reflect2/src/Main.java6
5 files changed, 8 insertions, 8 deletions
diff --git a/runtime/native/java_lang_reflect_Field.cc b/runtime/native/java_lang_reflect_Field.cc
index ba898c6d2d..39c872dedc 100644
--- a/runtime/native/java_lang_reflect_Field.cc
+++ b/runtime/native/java_lang_reflect_Field.cc
@@ -253,9 +253,9 @@ ALWAYS_INLINE inline static void SetFieldValue(mirror::Object* o, mirror::Field*
break;
case Primitive::kPrimChar:
if (is_volatile) {
- o->SetFieldBooleanVolatile<false>(offset, new_value.GetC());
+ o->SetFieldCharVolatile<false>(offset, new_value.GetC());
} else {
- o->SetFieldBoolean<false>(offset, new_value.GetC());
+ o->SetFieldChar<false>(offset, new_value.GetC());
}
break;
case Primitive::kPrimInt:
diff --git a/test/046-reflect/expected.txt b/test/046-reflect/expected.txt
index fa053fb92d..d657d44e61 100644
--- a/test/046-reflect/expected.txt
+++ b/test/046-reflect/expected.txt
@@ -24,7 +24,7 @@ Method name is myMethod
SuperTarget constructor ()V
Target constructor ()V
Before, float is 3.1415925
-myMethod: hi there 3.1415925 Q !
+myMethod: hi there 3.1415925 ✔ !
Result of invoke: 7
Calling no-arg void-return method
myNoargMethod ()V
diff --git a/test/046-reflect/src/Main.java b/test/046-reflect/src/Main.java
index 0d8e576086..0c90109c69 100644
--- a/test/046-reflect/src/Main.java
+++ b/test/046-reflect/src/Main.java
@@ -147,7 +147,7 @@ public class Main {
Object[] argList = new Object[] {
new String[] { "hi there" },
new Float(3.1415926f),
- new Character('Q')
+ new Character('\u2714')
};
System.out.println("Before, float is "
+ ((Float)argList[1]).floatValue());
diff --git a/test/100-reflect2/expected.txt b/test/100-reflect2/expected.txt
index 7db61a1023..c932761c3b 100644
--- a/test/100-reflect2/expected.txt
+++ b/test/100-reflect2/expected.txt
@@ -1,6 +1,6 @@
true
8
-x
+✔
3.141592653589793
3.14
32
diff --git a/test/100-reflect2/src/Main.java b/test/100-reflect2/src/Main.java
index 72e14b15f3..bf3a574c99 100644
--- a/test/100-reflect2/src/Main.java
+++ b/test/100-reflect2/src/Main.java
@@ -20,7 +20,7 @@ import java.util.*;
class Main {
private static boolean z = true;
private static byte b = 8;
- private static char c = 'x';
+ private static char c = '\u2714';
private static double d = Math.PI;
private static float f = 3.14f;
private static int i = 32;
@@ -144,7 +144,7 @@ class Main {
/*
private static boolean z = true;
private static byte b = 8;
- private static char c = 'x';
+ private static char c = '\u2714';
private static double d = Math.PI;
private static float f = 3.14f;
private static int i = 32;
@@ -263,7 +263,7 @@ class Main {
show(ctor.newInstance((Object[]) null));
ctor = String.class.getConstructor(char[].class, int.class, int.class);
- show(ctor.newInstance(new char[] { 'x', 'y', 'z', '!' }, 1, 2));
+ show(ctor.newInstance(new char[] { '\u2714', 'y', 'z', '!' }, 1, 2));
}
private static void testPackagePrivateConstructor() {