//===-- StoppointLocation.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/Breakpoint/StoppointLocation.h"

// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes

using namespace lldb;
using namespace lldb_private;

//----------------------------------------------------------------------
// StoppointLocation constructor
//----------------------------------------------------------------------
StoppointLocation::StoppointLocation (break_id_t bid, addr_t addr, bool hardware) :
    m_loc_id(bid),
    m_addr(addr),
    m_hardware(hardware),
    m_hardware_index(LLDB_INVALID_INDEX32),
    m_byte_size(0),
    m_hit_count(0)
{
}

StoppointLocation::StoppointLocation (break_id_t bid, addr_t addr, uint32_t byte_size, bool hardware) :
    m_loc_id(bid),
    m_addr(addr),
    m_hardware(hardware),
    m_hardware_index(LLDB_INVALID_INDEX32),
    m_byte_size(byte_size),
    m_hit_count(0)
{
}

//----------------------------------------------------------------------
// Destructor
//----------------------------------------------------------------------
StoppointLocation::~StoppointLocation()
{
}

void
StoppointLocation::DecrementHitCount ()
{
    assert (m_hit_count > 0);
    --m_hit_count;
}
