diff --git a/textmodel.cc b/textmodel.cc
index c02620c36c9e0dd5c97b31c493f3ebddb827eb0a..cfd7730256ff2d0045cfd1ed63e83e1b497a8575 100644 (file)
--- a/textmodel.cc
+++ b/textmodel.cc
TextPiece::TextPiece(size_t len): d_len(len) {}
-LongPiece::LongPiece(size_t len): TextPiece(len) {}
+LongPiece::LongPiece(size_t len): TextPiece(len * 2) {}
LongPiece::~LongPiece() {
delete d_buf;
}
void LongPiece::read(Reader &reader) {
- d_buf = new CHAR[d_len];
- reader.readLChar(d_buf, d_len);
+ d_buf = new CHAR[d_len / 2 + 1];
+ reader.readLChar(d_buf, d_len / 2);
+ d_buf[d_len / 2] = 0;
}
std::string LongPiece::toString() const {
}
void ShortPiece::read(Reader &reader) {
-// static char piece[] = "pieceA";
d_buf = new SHORTCHAR[d_len + 1];
reader.readSChar(d_buf, d_len);
d_buf[d_len] = 0;
-// std::cout.write(buf, d_len);
-// std::ofstream ofs(piece, std::ios::out);
-// ofs.write(buf, d_len);
-// ofs.close();
-// ++piece[5];
-// delete buf;
}
std::string ShortPiece::toString() const {
visitor.textShortPiece(this);
}
-ViewPiece::ViewPiece(Store *view): TextPiece(0), d_view(view) {}
+ViewPiece::ViewPiece(Store *view): TextPiece(1), d_view(view) {}
+
+ViewPiece::~ViewPiece() {
+ delete d_view;
+}
void ViewPiece::read(Reader &reader) {
reader.readByte();