]> source.dussan.org Git - poi.git/commitdiff
fix VT_LPWSTR support
authorSergey Vladimirov <sergey@apache.org>
Sun, 2 Oct 2011 08:44:05 +0000 (08:44 +0000)
committerSergey Vladimirov <sergey@apache.org>
Sun, 2 Oct 2011 08:44:05 +0000 (08:44 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1178149 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hpsf/VariantSupport.java

index ecb486b94bafb822a6e5967a86fbfb6169ed6e9f..f1752de8a061733df1ae617dabfbaaa9cf4ceb9a 100644 (file)
@@ -505,19 +505,23 @@ public class VariantSupport extends Variant
             }
             case Variant.VT_LPWSTR:
             {
-                final int nrOfChars = ((String) value).length() + 1;
-                length += TypeWriter.writeUIntToStream(out, nrOfChars);
-                char[] s = Util.pad4((String) value);
-                for (int i = 0; i < s.length; i++)
+                final int nrOfChars = ( (String) value ).length() + 1;
+                length += TypeWriter.writeUIntToStream( out, nrOfChars );
+                char[] s = ( (String) value ).toCharArray();
+                for ( int i = 0; i < s.length; i++ )
                 {
-                    final int high = ((s[i] & 0x0000ff00) >> 8);
-                    final int low = (s[i] & 0x000000ff);
+                    final int high = ( ( s[i] & 0x0000ff00 ) >> 8 );
+                    final int low = ( s[i] & 0x000000ff );
                     final byte highb = (byte) high;
                     final byte lowb = (byte) low;
-                    out.write(lowb);
-                    out.write(highb);
+                    out.write( lowb );
+                    out.write( highb );
                     length += 2;
                 }
+                // NullTerminator
+                out.write( 0x00 );
+                out.write( 0x00 );
+                length += 2;
                 break;
             }
             case Variant.VT_CF: