diff options
author | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2003-05-16 00:02:31 +0000 |
---|---|---|
committer | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2003-05-16 00:02:31 +0000 |
commit | 36fa3fc2b13356f20ed58c37cdeb68c830c59829 (patch) | |
tree | bf937217f2ef50484de29e14afe933833ee627b6 /zinflate.h | |
parent | b2f2c1f2c534d20cd06aed7717b19b8ab101e254 (diff) | |
download | cryptopp-36fa3fc2b13356f20ed58c37cdeb68c830c59829.tar.gz |
misc optimizations
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@68 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'zinflate.h')
-rw-r--r-- | zinflate.h | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -124,15 +124,21 @@ private: void OutputString(const byte *string, unsigned int length); void OutputPast(unsigned int length, unsigned int distance); + static const HuffmanDecoder *FixedLiteralDecoder(); + static const HuffmanDecoder *FixedDistanceDecoder(); + + const HuffmanDecoder *GetLiteralDecoder() const; + const HuffmanDecoder *GetDistanceDecoder() const; + enum State {PRE_STREAM, WAIT_HEADER, DECODING_BODY, POST_STREAM, AFTER_END}; State m_state; - bool m_repeat, m_eof, m_decodersInitializedWithFixedCodes; + bool m_repeat, m_eof; byte m_blockType; word16 m_storedLen; enum NextDecode {LITERAL, LENGTH_BITS, DISTANCE, DISTANCE_BITS}; NextDecode m_nextDecode; unsigned int m_literal, m_distance; // for LENGTH_BITS or DISTANCE_BITS - HuffmanDecoder m_literalDecoder, m_distanceDecoder; + HuffmanDecoder m_dynamicLiteralDecoder, m_dynamicDistanceDecoder; LowFirstBitReader m_reader; SecByteBlock m_window; unsigned int m_maxDistance, m_current, m_lastFlush; |