From 47148678a1b1d87c3a0af643c6820fde9da0a9ee Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 2 Aug 2002 23:47:27 +0000 Subject: [PATCH] fix repack problem --- panda/src/express/multifile.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/panda/src/express/multifile.cxx b/panda/src/express/multifile.cxx index d2fbc34976..4daf08b0e3 100644 --- a/panda/src/express/multifile.cxx +++ b/panda/src/express/multifile.cxx @@ -1073,8 +1073,6 @@ streampos Multifile::Subfile:: write_data(ostream &write, istream *read, streampos fpos) { nassertr(write.tellp() == fpos, fpos); - _data_start = fpos; - istream *source = _source; ifstream source_file; if (source == (istream *)NULL && !_source_filename.empty()) { @@ -1100,6 +1098,7 @@ write_data(ostream &write, istream *read, streampos fpos) { _flags |= SF_data_invalid; } else { // Read the data from the original Multifile. + read->seekg(_data_start); for (size_t p = 0; p < _data_length; p++) { int byte = read->get(); if (read->eof() || read->fail()) { @@ -1123,6 +1122,10 @@ write_data(ostream &write, istream *read, streampos fpos) { } } + // We can't set _data_start until down here, after we have read the + // Subfile. (In case we are running during repack()). + _data_start = fpos; + _source = (istream *)NULL; _source_filename = Filename(); source_file.close();