summaryrefslogtreecommitdiff
path: root/zinflate.h
diff options
context:
space:
mode:
authorweidai <weidai11@users.noreply.github.com>2003-05-16 00:02:31 +0000
committerweidai <weidai11@users.noreply.github.com>2003-05-16 00:02:31 +0000
commitc9f75009a5aebea315a544f19c37ead617a5dd62 (patch)
treebf937217f2ef50484de29e14afe933833ee627b6 /zinflate.h
parentde0f05d787a6e8d9892ece40927ef7cb234a6216 (diff)
downloadcryptopp-git-c9f75009a5aebea315a544f19c37ead617a5dd62.tar.gz
misc optimizations
Diffstat (limited to 'zinflate.h')
-rw-r--r--zinflate.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/zinflate.h b/zinflate.h
index b3172c8b..34c39a8b 100644
--- a/zinflate.h
+++ b/zinflate.h
@@ -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;