Browse Source

*** empty log message ***

Mike Goslin 25 years ago
parent
commit
5d8d9a4892
2 changed files with 11 additions and 7 deletions
  1. 1 1
      panda/src/downloader/extractor.cxx
  2. 10 6
      panda/src/express/multifile.cxx

+ 1 - 1
panda/src/downloader/extractor.cxx

@@ -84,6 +84,7 @@ initiate(Filename &source_file, const Filename &rel_path) {
   _total_bytes_read = 0;
   _read_all_input = false;
   _handled_all_input = false;
+  _mfile.reset();
   return ES_success;
 }
 
@@ -111,7 +112,6 @@ run(void) {
   if (_mfile.write(start, size, _rel_path) == true) {
     _read_stream.close();
     _source_file.unlink();
-    _mfile.reset();
     return ES_success;
   }
   return ES_ok;

+ 10 - 6
panda/src/express/multifile.cxx

@@ -47,6 +47,7 @@ Multifile::Memfile::
 ~Memfile(void) {
   if (_buffer != (char *)0L)
     delete _buffer;
+  _buffer = (char *)0L;
   delete _header_length_buf;
 }
 
@@ -61,12 +62,12 @@ reset(void) {
   _header_parsed = false;
   _header_length = 0;
   _buffer_length = 0;
-  if (_buffer != (char *)0L)
-    delete _buffer;
+  //if (_buffer != (char *)0L)
+  //  delete _buffer;
   _buffer = (char *)0L;
   _file_open = false;
   _bytes_written = 0;
-  _datagram.clear();
+  //_datagram.clear();
 }
 
 ////////////////////////////////////////////////////////////////////
@@ -583,13 +584,16 @@ write(char *&start, int &size, const Filename &rel_path) {
   if (parse_header(start, size) == false)
     return false;
 
-  if (_current_mfile == (Memfile *)0L)
-    _current_mfile = new Memfile;
+  //if (_current_mfile == (Memfile *)0L)
+  //  _current_mfile = new Memfile;
 
   while (_num_mfiles > 0) {
+    if (_current_mfile == NULL)
+      _current_mfile = new Memfile;
     if (_current_mfile->write(start, size, rel_path) == true) {
       _num_mfiles--;
-      _current_mfile->reset();
+      delete _current_mfile;
+   //   _current_mfile->reset();
     } else
       return false;
   }