projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2009-08-24 Marek Habersack <mhabersack@novell.com>
[mono.git]
/
mcs
/
class
/
System.Web
/
System.Web
/
HttpWriter.cs
diff --git
a/mcs/class/System.Web/System.Web/HttpWriter.cs
b/mcs/class/System.Web/System.Web/HttpWriter.cs
index 9fb607c2a19b844f43952660516ebd22d17060b5..f695bccc12239b5e772567b964426698a0dfb11f 100644
(file)
--- a/
mcs/class/System.Web/System.Web/HttpWriter.cs
+++ b/
mcs/class/System.Web/System.Web/HttpWriter.cs
@@
-81,6
+81,9
@@
namespace System.Web {
}
}
}
}
+ internal HttpResponse Response {
+ get { return response; }
+ }
//
// Flush data, and closes socket
//
//
// Flush data, and closes socket
//
@@
-119,11
+122,14
@@
namespace System.Web {
{
if (buffer == null || index < 0 || count < 0 || (buffer.Length - index) < count)
throw new ArgumentOutOfRangeException ();
{
if (buffer == null || index < 0 || count < 0 || (buffer.Length - index) < count)
throw new ArgumentOutOfRangeException ();
-
- int length = encoding.GetByteCount (buffer, index, count);
+#if TARGET_JVM
+ output_stream.Write (buffer, index, count);
+#else
+ int length = encoding.GetMaxByteCount (count);
byte [] bytebuffer = GetByteBuffer (length);
byte [] bytebuffer = GetByteBuffer (length);
- encoding.GetBytes (buffer, index, count, bytebuffer, 0);
- output_stream.Write (bytebuffer, 0, length);
+ int realLength = encoding.GetBytes (buffer, index, count, bytebuffer, 0);
+ output_stream.Write (bytebuffer, 0, realLength);
+#endif
if (response.buffer)
return;
if (response.buffer)
return;
@@
-144,24
+150,25
@@
namespace System.Web {
if (index < 0 || count < 0 || ((index + count > s.Length)))
throw new ArgumentOutOfRangeException ();
if (index < 0 || count < 0 || ((index + count > s.Length)))
throw new ArgumentOutOfRangeException ();
-
- int length;
- if (index == 0 && count == s.Length) {
- length = encoding.GetByteCount (s);
- } else {
- char [] chars = s.ToCharArray (index, count);
- length = encoding.GetByteCount (chars);
- }
-
+#if TARGET_JVM
+ output_stream.Write (s, index, count);
+#else
+ int length = encoding.GetMaxByteCount (count);
byte [] bytebuffer = GetByteBuffer (length);
byte [] bytebuffer = GetByteBuffer (length);
- encoding.GetBytes (s, index, count, bytebuffer, 0);
- output_stream.Write (bytebuffer, 0, length);
+ int realLength = encoding.GetBytes (s, index, count, bytebuffer, 0);
+ output_stream.Write (bytebuffer, 0, realLength);
+#endif
if (response.buffer)
return;
response.Flush ();
}
if (response.buffer)
return;
response.Flush ();
}
+ internal void WriteUTF8Ptr (IntPtr ptr, int length)
+ {
+ output_stream.WritePtr (ptr, length);
+ }
+
public void WriteBytes (byte [] buffer, int index, int count)
{
output_stream.Write (buffer, index, count);
public void WriteBytes (byte [] buffer, int index, int count)
{
output_stream.Write (buffer, index, count);