diff options
author | weidai <weidai11@users.noreply.github.com> | 2003-05-16 00:02:31 +0000 |
---|---|---|
committer | weidai <weidai11@users.noreply.github.com> | 2003-05-16 00:02:31 +0000 |
commit | c9f75009a5aebea315a544f19c37ead617a5dd62 (patch) | |
tree | bf937217f2ef50484de29e14afe933833ee627b6 /zinflate.h | |
parent | de0f05d787a6e8d9892ece40927ef7cb234a6216 (diff) | |
download | cryptopp-git-c9f75009a5aebea315a544f19c37ead617a5dd62.tar.gz |
misc optimizations
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; |