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 | 2e49204e0f066e043ef9aa573c7404b5bae0356d (patch) | |
tree | 5a67de43c871c722b6f65b36b5ef42e87149e5c9 /llvm/lib/Bytecode/Reader/Reader.h | |
parent | 6b01c01171c344641d0010cbd3d24f4695818d47 (diff) | |
download | bcm5719-llvm-2e49204e0f066e043ef9aa573c7404b5bae0356d.tar.gz bcm5719-llvm-2e49204e0f066e043ef9aa573c7404b5bae0356d.zip |
Add support for compressed bytecode
llvm-svn: 17535
Diffstat (limited to 'llvm/lib/Bytecode/Reader/Reader.h')
-rw-r--r-- | llvm/lib/Bytecode/Reader/Reader.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/llvm/lib/Bytecode/Reader/Reader.h b/llvm/lib/Bytecode/Reader/Reader.h index 89d079d3f67..49d81733b8a 100644 --- a/llvm/lib/Bytecode/Reader/Reader.h +++ b/llvm/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 |