- optimized content encoding

git-svn-id: https://svn.apache.org/repos/asf/chemistry/dotcmis/trunk@1082509 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/DotCMIS/binding/atompub/atompub-writer.cs b/DotCMIS/binding/atompub/atompub-writer.cs
index d881301..dfc449b 100644
--- a/DotCMIS/binding/atompub/atompub-writer.cs
+++ b/DotCMIS/binding/atompub/atompub-writer.cs
@@ -169,25 +169,17 @@
 

         private void WriteContent(XmlWriter writer)

         {

-            byte[] byteArray = null;

-

-            if (stream is MemoryStream)

+            using (BinaryReader br = new BinaryReader(stream))

             {

-                byteArray = ((MemoryStream)stream).ToArray();

-            }

-            else

-            {

-                MemoryStream memStream = new MemoryStream();

                 byte[] buffer = new byte[BufferSize];

-                int bytes;

-                while ((bytes = stream.Read(buffer, 0, buffer.Length)) > 0)

-                {

-                    memStream.Write(buffer, 0, bytes);

-                }

-                byteArray = memStream.ToArray();

-            }

+                int readBytes = 0;

 

-            writer.WriteBase64(byteArray, 0, byteArray.Length);

+                do

+                {

+                    readBytes = br.Read(buffer, 0, BufferSize);

+                    writer.WriteBase64(buffer, 0, readBytes);

+                } while (BufferSize <= readBytes);

+            }

         }

     }