Manually replacing / 2's with >> 1's as this generates more optimal code in web mode because we don't have to coerce the result to integer.  However, it's only safe for non-negative numbers because shifting doesn't round correctly.

Review by: knorton (desk check)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2332 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/PopupPanel.java b/user/src/com/google/gwt/user/client/ui/PopupPanel.java
index 97b1e4c..79361dc 100644
--- a/user/src/com/google/gwt/user/client/ui/PopupPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/PopupPanel.java
@@ -150,8 +150,8 @@
       int height = (int) (progress * offsetHeight);
       int width = (int) (progress * offsetWidth);
       if (curPanel.animType == AnimationType.CENTER) {
-        top = (offsetHeight - height) / 2;
-        left = (offsetWidth - width) / 2;
+        top = (offsetHeight - height) >> 1;
+        left = (offsetWidth - width) >> 1;
       }
       right = left + width;
       bottom = top + height;
@@ -314,8 +314,8 @@
       show();
     }
 
-    int left = (Window.getClientWidth() - getOffsetWidth()) / 2;
-    int top = (Window.getClientHeight() - getOffsetHeight()) / 2;
+    int left = (Window.getClientWidth() - getOffsetWidth()) >> 1;
+    int top = (Window.getClientHeight() - getOffsetHeight()) >> 1;
     setPopupPosition(Window.getScrollLeft() + left, Window.getScrollTop() + top);
 
     if (!initiallyShowing) {
diff --git a/user/src/com/google/gwt/user/client/ui/PrefixTree.java b/user/src/com/google/gwt/user/client/ui/PrefixTree.java
index 74177fa..be84f89 100644
--- a/user/src/com/google/gwt/user/client/ui/PrefixTree.java
+++ b/user/src/com/google/gwt/user/client/ui/PrefixTree.java
@@ -315,7 +315,7 @@
       if (subtrees.hasOwnProperty(prefix)) {
         theTree = subtrees[prefix];
       } else {
-        theTree = @com.google.gwt.user.client.ui.PrefixTree::createPrefixTree(I)(prefixLength * 2);
+        theTree = @com.google.gwt.user.client.ui.PrefixTree::createPrefixTree(I)(prefixLength << 1);
         subtrees[prefix] = theTree;
       }
 
diff --git a/user/src/com/google/gwt/user/client/ui/StackPanel.java b/user/src/com/google/gwt/user/client/ui/StackPanel.java
index d0bb0b2..a70de0c 100644
--- a/user/src/com/google/gwt/user/client/ui/StackPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/StackPanel.java
@@ -400,7 +400,7 @@
   protected void onEnsureDebugId(String baseID) {
     super.onEnsureDebugId(baseID);
 
-    int numHeaders = DOM.getChildCount(body) / 2;
+    int numHeaders = DOM.getChildCount(body) >> 1;
     for (int i = 0; i < numHeaders; i++) {
       Element headerElem = DOM.getFirstChild(DOM.getChild(body, 2 * i));
       Element bodyElem = DOM.getFirstChild(DOM.getChild(body, 2 * i + 1));
diff --git a/user/super/com/google/gwt/emul/java/util/Arrays.java b/user/super/com/google/gwt/emul/java/util/Arrays.java
index 29dd10f..06789b5 100644
--- a/user/super/com/google/gwt/emul/java/util/Arrays.java
+++ b/user/super/com/google/gwt/emul/java/util/Arrays.java
@@ -49,7 +49,7 @@
     int high = sortedArray.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final byte midVal = sortedArray[mid];
 
       if (midVal < key) {
@@ -80,7 +80,7 @@
     int high = a.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final char midVal = a[mid];
 
       if (midVal < key) {
@@ -111,7 +111,7 @@
     int high = sortedArray.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final double midVal = sortedArray[mid];
 
       if (midVal < key) {
@@ -147,7 +147,7 @@
     int high = sortedArray.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final float midVal = sortedArray[mid];
 
       if (midVal < key) {
@@ -178,7 +178,7 @@
     int high = sortedArray.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final int midVal = sortedArray[mid];
 
       if (midVal < key) {
@@ -215,7 +215,7 @@
     int high = sortedArray.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final long midVal = sortedArray[mid];
 
       if (midVal < key) {
@@ -262,7 +262,7 @@
     int high = sortedArray.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final short midVal = sortedArray[mid];
 
       if (midVal < key) {
@@ -303,7 +303,7 @@
     int high = sortedArray.length - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final T midVal = sortedArray[mid];
       final int compareResult = comparator.compare(midVal, key);
 
@@ -1243,7 +1243,7 @@
     // recursively sort both halves, using the array as temp space
     int tempLow = low + ofs;
     int tempHigh = high + ofs;
-    int tempMid = tempLow + ((tempHigh - tempLow) / 2);
+    int tempMid = tempLow + ((tempHigh - tempLow) >> 1);
     mergeSort(array, temp, tempLow, tempMid, -ofs, comp);
     mergeSort(array, temp, tempMid, tempHigh, -ofs, comp);
 
diff --git a/user/super/com/google/gwt/emul/java/util/Collections.java b/user/super/com/google/gwt/emul/java/util/Collections.java
index c9f778d..252236b 100644
--- a/user/super/com/google/gwt/emul/java/util/Collections.java
+++ b/user/super/com/google/gwt/emul/java/util/Collections.java
@@ -189,7 +189,7 @@
     int high = sortedList.size() - 1;
 
     while (low <= high) {
-      final int mid = low + ((high - low) / 2);
+      final int mid = low + ((high - low) >> 1);
       final T midVal = sortedList.get(mid);
       final int compareResult = comparator.compare(midVal, key);
 
diff --git a/user/super/com/google/gwt/emul/java/util/PriorityQueue.java b/user/super/com/google/gwt/emul/java/util/PriorityQueue.java
index 03079d9..48962e5 100644
--- a/user/super/com/google/gwt/emul/java/util/PriorityQueue.java
+++ b/user/super/com/google/gwt/emul/java/util/PriorityQueue.java
@@ -74,7 +74,7 @@
     heap.add(e);
     while (node > 0) {
       int childNode = node;
-      node = (node - 1) / 2; // get parent of current node
+      node = (node - 1) >> 1; // get parent of current node
       if (cmp.compare(heap.get(node), heap.get(childNode)) <= 0) {
         // parent is smaller, so we have a valid heap
         heap.set(childNode, e);