summaryrefslogtreecommitdiffstats
path: root/remoting/base/compressor_zlib.cc
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-06 22:46:27 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-06 22:46:27 +0000
commitb53ab229bdba6cd50585c8fcaad011998b02f82c (patch)
treeef27ab8c08211d13d0ae86d1ec819b0b233b218f /remoting/base/compressor_zlib.cc
parentc0d56a6c6bd730aecaf124d738f266c691a2a6b2 (diff)
downloadchromium_src-b53ab229bdba6cd50585c8fcaad011998b02f82c.zip
chromium_src-b53ab229bdba6cd50585c8fcaad011998b02f82c.tar.gz
chromium_src-b53ab229bdba6cd50585c8fcaad011998b02f82c.tar.bz2
Refactor ZLib and Verbatim encoders.
Added EncoderRowBased that implements encoding for both ZLib and Verbatim. BUG=None TEST=None Review URL: http://codereview.chromium.org/5382008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68394 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/base/compressor_zlib.cc')
-rw-r--r--remoting/base/compressor_zlib.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/remoting/base/compressor_zlib.cc b/remoting/base/compressor_zlib.cc
index 6f700731..0128361 100644
--- a/remoting/base/compressor_zlib.cc
+++ b/remoting/base/compressor_zlib.cc
@@ -21,6 +21,17 @@
namespace remoting {
CompressorZlib::CompressorZlib() {
+ Reset();
+}
+
+CompressorZlib::~CompressorZlib() {
+ deflateEnd(stream_.get());
+}
+
+void CompressorZlib::Reset() {
+ if (stream_.get())
+ deflateEnd(stream_.get());
+
stream_.reset(new z_stream());
stream_->next_in = Z_NULL;
@@ -31,10 +42,6 @@ CompressorZlib::CompressorZlib() {
deflateInit(stream_.get(), Z_BEST_SPEED);
}
-CompressorZlib::~CompressorZlib() {
- deflateEnd(stream_.get());
-}
-
bool CompressorZlib::Process(const uint8* input_data, int input_size,
uint8* output_data, int output_size,
CompressorFlush flush, int* consumed,