ClangExternalASTSourceCommon.cpp revision 16d2187c0c3992f22e9cb011f863dc0fe35e3cde
1//===-- ClangExternalASTSourceCommon.cpp ------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "lldb/Symbol/ClangExternalASTSourceCommon.h"
11
12using namespace lldb_private;
13
14#define ClangExternalASTSourceCommon_MAGIC  (0x00112233aabbccddull)
15
16ClangExternalASTSourceCommon::ClangExternalASTSourceCommon() : clang::ExternalASTSource()
17{
18    m_magic = ClangExternalASTSourceCommon_MAGIC;
19}
20
21uint64_t ClangExternalASTSourceCommon::GetMetadata (uintptr_t object)
22{
23    assert (m_magic == ClangExternalASTSourceCommon_MAGIC);
24
25    return m_metadata[object];
26}
27
28void ClangExternalASTSourceCommon::SetMetadata (uintptr_t object, uint64_t metadata)
29{
30    assert (m_magic == ClangExternalASTSourceCommon_MAGIC);
31
32    m_metadata[object] = metadata;
33}
34
35bool ClangExternalASTSourceCommon::HasMetadata (uintptr_t object)
36{
37    assert (m_magic == ClangExternalASTSourceCommon_MAGIC);
38
39    return m_metadata.find(object) != m_metadata.end();
40}
41