//===-- StackID.cpp ---------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "lldb/Target/StackID.h" // C Includes // C++ Includes // Other libraries and framework includes // Project includes using namespace lldb_private; //---------------------------------------------------------------------- // StackID constructor //---------------------------------------------------------------------- StackID::StackID() : m_start_address(), m_cfa() { } //---------------------------------------------------------------------- // StackID constructor with args //---------------------------------------------------------------------- StackID::StackID (const Address& start_address, lldb::addr_t cfa) : m_start_address (start_address), m_cfa (cfa) { } StackID::StackID (lldb::addr_t cfa) : m_start_address (), m_cfa (cfa) { } //---------------------------------------------------------------------- // StackID copy constructor //---------------------------------------------------------------------- StackID::StackID(const StackID& rhs) : m_start_address (rhs.m_start_address), m_cfa (rhs.m_cfa) { } //---------------------------------------------------------------------- // StackID assignment operator //---------------------------------------------------------------------- const StackID& StackID::operator=(const StackID& rhs) { if (this != &rhs) { m_start_address = rhs.m_start_address; m_cfa = rhs.m_cfa; } return *this; } //---------------------------------------------------------------------- // Destructor //---------------------------------------------------------------------- StackID::~StackID() { } const Address& StackID::GetStartAddress() const { return m_start_address; } void StackID::SetStartAddress(const Address& start_address) { m_start_address = start_address; } lldb::addr_t StackID::GetCallFrameAddress() const { return m_cfa; } bool lldb_private::operator== (const StackID& lhs, const StackID& rhs) { return lhs.GetCallFrameAddress() == rhs.GetCallFrameAddress() && lhs.GetStartAddress() == rhs.GetStartAddress(); } bool lldb_private::operator!= (const StackID& lhs, const StackID& rhs) { return lhs.GetCallFrameAddress() != rhs.GetCallFrameAddress() || lhs.GetStartAddress() != rhs.GetStartAddress(); } bool lldb_private::operator< (const StackID& lhs, const StackID& rhs) { return lhs.GetCallFrameAddress() < rhs.GetCallFrameAddress(); }