Revert. We'll roll something together when Zell's not trying to release.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6042 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2010-02-22 20:26:31 +00:00
parent 90ff35b3a0
commit 90a6d78a3c
@@ -24,15 +24,14 @@ package com.threerings.io;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import com.google.common.base.Charsets;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.io.LineReader;
import com.samskivert.util.StringUtil; import com.samskivert.util.StringUtil;
@@ -315,10 +314,18 @@ public class ObjectInputStream extends DataInputStream
public String readUnmodifiedUTF () public String readUnmodifiedUTF ()
throws IOException throws IOException
{ {
if (_reader == null) { // find out how many raw bytes of UTF8 data there is
_reader = new LineReader(new InputStreamReader(this, Charsets.UTF_8)); int utflen = readUnsignedShort();
} // read precisely that many into a buffer
return _reader.readLine(); byte[] bbuf = new byte[utflen];
in.read(bbuf);
// decode the UTF-8 stream into a character buffer
char[] cbuf = new char[utflen];
int read = new InputStreamReader(new ByteArrayInputStream(bbuf), "UTF-8").read(cbuf);
// create and return the string given the number of decoded characters
return String.copyValueOf(cbuf, 0, read);
} }
@Override @Override
@@ -347,8 +354,6 @@ public class ObjectInputStream extends DataInputStream
/** An optional set of class name translations to use when unserializing objects. */ /** An optional set of class name translations to use when unserializing objects. */
protected HashMap<String, String> _translations; protected HashMap<String, String> _translations;
protected LineReader _reader;
/** Used to activate verbose debug logging. */ /** Used to activate verbose debug logging. */
protected static final boolean STREAM_DEBUG = false; protected static final boolean STREAM_DEBUG = false;
} }