Merging Windows hosted mode crash fix (r1991, r1995) into 1.4 release branch.

Review by: jgw (desk check)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/releases/1.4@2014 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/windows/src/com/google/gwt/dev/shell/ie/SwtOleGlue.java b/dev/windows/src/com/google/gwt/dev/shell/ie/SwtOleGlue.java
index 1ed7552..016431b 100644
--- a/dev/windows/src/com/google/gwt/dev/shell/ie/SwtOleGlue.java
+++ b/dev/windows/src/com/google/gwt/dev/shell/ie/SwtOleGlue.java
@@ -85,20 +85,10 @@
    * Extracts a string from an (OLECHAR*) type.
    */
   public static String extractStringFromOleCharPtr(int pOleChar) {
-    // TODO: double-check the encoding (is it UTF-16?, what)
-    int size = COM.SysStringByteLen(pOleChar);
-    if (size > 8192) {
-      size = 8192;
-    }
-    char[] buffer = new char[(size + 1) / 2];
-    COM.MoveMemory(buffer, pOleChar, size);
-
-    String s = new String(buffer);
-    if (s.indexOf('\0') != -1) {
-      return s.substring(0, s.indexOf('\0'));
-    } else {
-      return s;
-    }
+    int length = OS.wcslen(pOleChar);
+    char[] buffer = new char[length];
+    OS.MoveMemory(buffer, pOleChar, length * 2);
+    return String.valueOf(buffer);
   }
 
   /**