Reader no longer has direct access to MemoryStream.
This commit is contained in:
parent
2728e63eb8
commit
5f9f12a672
|
@ -64,8 +64,6 @@ class ReaderException : YAMLException
|
||||||
final class Reader
|
final class Reader
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
// Input stream.
|
|
||||||
MemoryStream memStream_;
|
|
||||||
// Allocated space for buffer_.
|
// Allocated space for buffer_.
|
||||||
dchar[] bufferAllocated_ = null;
|
dchar[] bufferAllocated_ = null;
|
||||||
// Buffer of currently loaded characters.
|
// Buffer of currently loaded characters.
|
||||||
|
@ -104,8 +102,7 @@ final class Reader
|
||||||
}
|
}
|
||||||
|
|
||||||
version(unittest) { endian_ = result.endian; }
|
version(unittest) { endian_ = result.endian; }
|
||||||
memStream_ = new MemoryStream(result.array);
|
decoder_ = UTFFastDecoder(new MemoryStream(result.array), result.encoding);
|
||||||
decoder_ = UTFFastDecoder(memStream_, result.encoding);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@trusted nothrow @nogc ~this()
|
@trusted nothrow @nogc ~this()
|
||||||
|
@ -303,7 +300,7 @@ final class Reader
|
||||||
void loadChars(size_t chars) @system
|
void loadChars(size_t chars) @system
|
||||||
{
|
{
|
||||||
const oldLength = buffer_.length;
|
const oldLength = buffer_.length;
|
||||||
const oldPosition = memStream_.position;
|
const oldPosition = decoder_.position;
|
||||||
|
|
||||||
bufferReserve(buffer_.length + chars);
|
bufferReserve(buffer_.length + chars);
|
||||||
buffer_ = bufferAllocated_[0 .. buffer_.length + chars];
|
buffer_ = bufferAllocated_[0 .. buffer_.length + chars];
|
||||||
|
@ -333,7 +330,7 @@ final class Reader
|
||||||
try{throw e;}
|
try{throw e;}
|
||||||
catch(UTFException e)
|
catch(UTFException e)
|
||||||
{
|
{
|
||||||
const position = memStream_.position;
|
const position = decoder_.position;
|
||||||
throw new ReaderException(format("Unicode decoding error between bytes %s and %s : %s",
|
throw new ReaderException(format("Unicode decoding error between bytes %s and %s : %s",
|
||||||
oldPosition, position, e.msg));
|
oldPosition, position, e.msg));
|
||||||
}
|
}
|
||||||
|
@ -444,6 +441,9 @@ struct UTFBlockDecoder(size_t bufferSize_) if (bufferSize_ % 2 == 0)
|
||||||
/// Get encoding we're decoding from.
|
/// Get encoding we're decoding from.
|
||||||
@property UTFEncoding encoding() const pure @safe nothrow @nogc { return encoding_; }
|
@property UTFEncoding encoding() const pure @safe nothrow @nogc { return encoding_; }
|
||||||
|
|
||||||
|
/// Get the current position in stream.
|
||||||
|
size_t position() @trusted { return stream_.position; }
|
||||||
|
|
||||||
/// Are we done decoding?
|
/// Are we done decoding?
|
||||||
@property bool done() const pure @safe nothrow @nogc
|
@property bool done() const pure @safe nothrow @nogc
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue