diff options
Diffstat (limited to 'lib/Bytecode/Reader/Reader.h')
-rw-r--r-- | lib/Bytecode/Reader/Reader.h | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/lib/Bytecode/Reader/Reader.h b/lib/Bytecode/Reader/Reader.h index 72a6040366..c78faf625f 100644 --- a/lib/Bytecode/Reader/Reader.h +++ b/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 |