8001055: Bytes.swap should follow big endian
authorminqi
Fri, 19 Oct 2012 08:58:14 -0700
changeset 14119 57594319ed46
parent 14118 89ac7d090f10
child 14121 d71e87f41ee0
8001055: Bytes.swap should follow big endian Summary: This is a mistake change in 6879063 about Bytes.swap. Java byte code order always follows big endian, but in that change, assume they follow native platform order that is not right. Reviewed-by: coleenp, sspitsyn, dholmes Contributed-by: yumin.qi@oracle.com
hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Bytes.java
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Bytes.java	Fri Oct 19 08:56:57 2012 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Bytes.java	Fri Oct 19 08:58:14 2012 -0700
@@ -30,24 +30,10 @@
 /** Encapsulates some byte-swapping operations defined in the VM */
 
 public class Bytes {
-  // swap if client platform is different from server's.
   private boolean swap;
 
   public Bytes(MachineDescription machDesc) {
-    String cpu = PlatformInfo.getCPU();
-    if (cpu.equals("sparc")) {
-      if (machDesc.isBigEndian()) {
-        swap = false;
-      } else {
-        swap = true;
-      }
-    } else { // intel
-      if (machDesc.isBigEndian()) {
-        swap = true;
-      } else {
-        swap = false;
-      }
-    }
+    swap = !machDesc.isBigEndian();
   }
 
   /** Should only swap if the hardware's underlying byte order is