diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-11-14 22:00:09 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-11-14 22:00:09 +0000 |
commit | f01fc688badab4c01f0c947887d4ddfa4dccfa81 (patch) | |
tree | 1c58be17c2ea6cf2594a5139c4669e40e8d7c435 /llvm/lib/Bytecode | |
parent | 0e36b8afb928266329846ed010be06a19d55115e (diff) | |
download | bcm5719-llvm-f01fc688badab4c01f0c947887d4ddfa4dccfa81.tar.gz bcm5719-llvm-f01fc688badab4c01f0c947887d4ddfa4dccfa81.zip |
Simplify handling of decompression
llvm-svn: 17769
Diffstat (limited to 'llvm/lib/Bytecode')
-rw-r--r-- | llvm/lib/Bytecode/Reader/Reader.h | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/llvm/lib/Bytecode/Reader/Reader.h b/llvm/lib/Bytecode/Reader/Reader.h index 72a60403664..c78faf625fe 100644 --- a/llvm/lib/Bytecode/Reader/Reader.h +++ b/llvm/lib/Bytecode/Reader/Reader.h @@ -47,13 +47,14 @@ public: BytecodeReader( BytecodeHandler* h = 0 ) { + decompressedBlock = 0; Handler = h; } ~BytecodeReader() { freeState(); - if (bi.buff != 0) - ::free(bi.buff); + if (decompressedBlock) + ::free(decompressedBlock); } /// @} @@ -67,18 +68,6 @@ public: /// @brief The type used for a vector of potentially abstract types typedef std::vector<PATypeHolder> TypeListTy; - /// This structure is only used when a bytecode file is compressed. - /// As bytecode is being decompressed, the memory buffer might need - /// to be reallocated. The buffer allocation is handled in a callback - /// and this structure is needed to retain information across calls - /// to the callback. - /// @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 @@ -251,7 +240,7 @@ protected: /// @name Data /// @{ private: - BufferInfo bi; ///< Buffer info for decompression + char* decompressedBlock; ///< Result of decompression BufPtr MemStart; ///< Start of the memory buffer BufPtr MemEnd; ///< End of the memory buffer BufPtr BlockStart; ///< Start of current block being parsed |