diff options
author | csharptest <roger@csharptest.net> | 2013-05-16 13:59:34 -0500 |
---|---|---|
committer | rogerk <devnull@localhost> | 2013-05-16 13:59:34 -0500 |
commit | 0a0dd0333a4bec75451d549b88040d4fb598ad9f (patch) | |
tree | e79c4571f9802e734e6562f52bb1f4c275f80eaa | |
parent | 8c8a82a2607e5663c5256892573142cefc0aea05 (diff) | |
download | protobuf-0a0dd0333a4bec75451d549b88040d4fb598ad9f.tar.gz protobuf-0a0dd0333a4bec75451d549b88040d4fb598ad9f.tar.bz2 protobuf-0a0dd0333a4bec75451d549b88040d4fb598ad9f.zip |
Fix for bug in limited input stream's Position, Introduced Position on output stream
-rw-r--r-- | src/ProtocolBuffers/CodedInputStream.cs | 2 | ||||
-rw-r--r-- | src/ProtocolBuffers/CodedOutputStream.cs | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/ProtocolBuffers/CodedInputStream.cs b/src/ProtocolBuffers/CodedInputStream.cs index bc443839..a63ce174 100644 --- a/src/ProtocolBuffers/CodedInputStream.cs +++ b/src/ProtocolBuffers/CodedInputStream.cs @@ -166,7 +166,7 @@ namespace Google.ProtocolBuffers get
{
if (input != null)
- return input.Position - (bufferSize - bufferPos);
+ return input.Position - ((bufferSize + bufferSizeAfterLimit) - bufferPos);
return bufferPos;
}
}
diff --git a/src/ProtocolBuffers/CodedOutputStream.cs b/src/ProtocolBuffers/CodedOutputStream.cs index b767f705..9688d5cb 100644 --- a/src/ProtocolBuffers/CodedOutputStream.cs +++ b/src/ProtocolBuffers/CodedOutputStream.cs @@ -125,7 +125,20 @@ namespace Google.ProtocolBuffers }
#endregion
-
+
+ /// <summary>
+ /// Returns the current position in the stream, or the position in the output buffer
+ /// </summary>
+ public long Position
+ {
+ get
+ {
+ if (output != null)
+ return output.Position + position;
+ return position;
+ }
+ }
+
void ICodedOutputStream.WriteMessageStart() { }
void ICodedOutputStream.WriteMessageEnd() { Flush(); }
|