diff --git a/include/dollop.h b/include/dollop.h index be6940efe27a08c61cbab3313bc2faad8e617e07..965e0d9913b677653a70980d09d4a0de9437300b 100644 --- a/include/dollop.h +++ b/include/dollop.h @@ -89,7 +89,12 @@ class Dollop_t : public Placeable_t, public std::list<DollopEntry_t*> { static Dollop_t *CreateNewDollop(libIRDB::Instruction_t *start); Dollop_t(libIRDB::Instruction_t *start); - Dollop_t() { m_size = 0; m_was_truncated = false; } + Dollop_t() : + m_size(0), + m_fallthrough_dollop(NULL), + m_fallthrough_patched(false), + m_coalesced(false), + m_was_truncated(false) {} size_t GetSize() const { return m_size; @@ -108,16 +113,23 @@ class Dollop_t : public Placeable_t, public std::list<DollopEntry_t*> { m_fallthrough_dollop = fallthrough; } Dollop_t *FallthroughDollop(void) const { return m_fallthrough_dollop; } + bool FallthroughPatched(void) const { return m_fallthrough_patched; } + void FallthroughPatched(bool patched); DollopEntry_t *FallthroughDollopEntry(DollopEntry_t *) const; void WasTruncated(bool truncated) { m_was_truncated = truncated; } bool WasTruncated(void) const { return m_was_truncated; } + void WasCoalesced(bool coalesced); + bool WasCoalesced(void) const { return m_coalesced; } + private: size_t CalculateWorstCaseSize(); size_t m_size; Dollop_t *m_fallthrough_dollop; + bool m_fallthrough_patched; + bool m_coalesced; bool m_was_truncated; }; }