mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 09:23:03 -04:00
*** empty log message ***
This commit is contained in:
parent
78d368b6ca
commit
f0db898172
@ -53,6 +53,7 @@ init(PT(Buffer) buffer) {
|
|||||||
_temp_file_name = temp_name;
|
_temp_file_name = temp_name;
|
||||||
_temp_file_name.set_binary();
|
_temp_file_name.set_binary();
|
||||||
delete temp_name;
|
delete temp_name;
|
||||||
|
_decompressor = new ZDecompressor();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -139,6 +140,9 @@ initiate(Filename &source_file, Filename &dest_file) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
int Decompressor::
|
int Decompressor::
|
||||||
run(void) {
|
run(void) {
|
||||||
|
if (_decompressor == NULL) {
|
||||||
|
_decompressor = new ZDecompressor();
|
||||||
|
}
|
||||||
|
|
||||||
// See if there is anything left in the source file
|
// See if there is anything left in the source file
|
||||||
if (_read_all_input == false) {
|
if (_read_all_input == false) {
|
||||||
@ -160,16 +164,18 @@ run(void) {
|
|||||||
nassertr(avail_out > 0 && avail_in > 0, false);
|
nassertr(avail_out > 0 && avail_in > 0, false);
|
||||||
|
|
||||||
while (avail_in > 0) {
|
while (avail_in > 0) {
|
||||||
int ret = _decompressor.decompress_to_stream(next_in, avail_in,
|
int ret = _decompressor->decompress_to_stream(next_in, avail_in,
|
||||||
next_out, avail_out, dest_buffer,
|
next_out, avail_out, dest_buffer,
|
||||||
dest_buffer_length, _write_stream);
|
dest_buffer_length, _write_stream);
|
||||||
if (ret == ZCompressorBase::S_error)
|
if (ret == ZCompressorBase::S_error)
|
||||||
return DS_error_zlib;
|
return DS_error_zlib;
|
||||||
if ((int)_decompressor.get_total_in() == _source_file_length &&
|
if ((int)_decompressor->get_total_in() == _source_file_length &&
|
||||||
avail_out == dest_buffer_length)
|
avail_out == dest_buffer_length)
|
||||||
_read_stream.close();
|
_read_stream.close();
|
||||||
_write_stream.close();
|
_write_stream.close();
|
||||||
_source_file.unlink();
|
_source_file.unlink();
|
||||||
|
delete _decompressor;
|
||||||
|
_decompressor = NULL;
|
||||||
return DS_success;
|
return DS_success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ private:
|
|||||||
bool _read_all_input;
|
bool _read_all_input;
|
||||||
bool _handled_all_input;
|
bool _handled_all_input;
|
||||||
int _source_buffer_length;
|
int _source_buffer_length;
|
||||||
ZDecompressor _decompressor;
|
ZDecompressor *_decompressor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -41,6 +41,7 @@ ZCompressor(void) {
|
|||||||
ZCompressor::
|
ZCompressor::
|
||||||
~ZCompressor(void) {
|
~ZCompressor(void) {
|
||||||
handle_zerror(deflateEnd(_stream), _stream);
|
handle_zerror(deflateEnd(_stream), _stream);
|
||||||
|
delete _stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user