diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-11-06 23:17:23 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-11-06 23:17:23 +0000 |
commit | 17f52c5c4617e6e1853fa7ac9335b277a90be7f4 (patch) | |
tree | d0afda75ef0a06af8201397ef86292e8b4480b7b /lib/Bytecode/Reader/Reader.h | |
parent | 2334e6d908eccb00dcb5ef5f5a8b70a1b85525f1 (diff) |
Add support for compressed bytecode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17535 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bytecode/Reader/Reader.h')
-rw-r--r-- | lib/Bytecode/Reader/Reader.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/Bytecode/Reader/Reader.h b/lib/Bytecode/Reader/Reader.h index 89d079d3f6..49d81733b8 100644 --- a/lib/Bytecode/Reader/Reader.h +++ b/lib/Bytecode/Reader/Reader.h @@ -47,10 +47,14 @@ public: BytecodeReader( BytecodeHandler* h = 0 ) { - Handler = h; + Handler = h; } - ~BytecodeReader() { freeState(); } + ~BytecodeReader() { + freeState(); + if (bi.buff != 0) + ::free(bi.buff); + } /// @} /// @name Types @@ -63,6 +67,13 @@ public: /// @brief The type used for a vector of potentially abstract types typedef std::vector<PATypeHolder> TypeListTy; + /// @brief An internal buffer object used for handling decompression + struct BufferInfo { + char* buff; + unsigned size; + BufferInfo() { buff = 0; size = 0; } + }; + /// This type provides a vector of Value* via the User class for /// storage of Values that have been constructed when reading the /// bytecode. Because of forward referencing, constant replacement @@ -235,6 +246,8 @@ protected: /// @name Data /// @{ private: + BufferInfo bi; ///< Buffer info for decompression + BufPtr MemStart; ///< Start of the memory buffer BufPtr MemEnd; ///< End of the memory buffer BufPtr BlockStart; ///< Start of current block being parsed |