Seems to be some kind of issue with moving the length == -1 check inside

the loop, so I'm rolling back to the previous version since I can't even
log in to my server with this change.  Mike if you want to take a look or
tell me what jimmyjamming needs to be done to make this change work, that
would be great.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2694 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Eric Lundberg
2003-07-07 22:35:38 +00:00
parent 17b567ba18
commit 0ebfeadd21
@@ -1,5 +1,5 @@
//
// $Id: FramedInputStream.java,v 1.4 2003/07/06 18:39:55 mdb Exp $
// $Id: FramedInputStream.java,v 1.5 2003/07/07 22:35:38 eric Exp $
package com.threerings.io;
@@ -96,18 +96,6 @@ public class FramedInputStream extends InputStream
// what we've got
if (_buffer.remaining() > 0) {
break;
} else if (_length == -1) {
// if we didn't already have our length, see if we now have
// enough data to obtain it
_length = decodeLength();
}
// additionally, if the buffer happened to be exactly as long
// as we needed, we need to break as well
if ((_length > 0) && (_have >= _length)) {
System.err.println("Phew, we would have been screwed in " +
"the previous release (" + _length + ").");
break;
}
// otherwise, we've filled up our buffer as a result of this
@@ -119,6 +107,12 @@ public class FramedInputStream extends InputStream
// don't let things grow without bounds
} while (_buffer.capacity() < MAX_BUFFER_CAPACITY);
// if we didn't already have our length, see if we now have enough
// data to obtain it
if (_length == -1) {
_length = decodeLength();
}
// finally check to see if there's a complete frame in the buffer
// and prepare to serve it up if there is
return checkForCompleteFrame();