blob: 85e1dc8e2735afde7fc604ae732409ec48d0bacf [file] [log] [blame]
Sean Callanan2fc7e8d2011-12-03 03:15:28 +00001//===-- 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
Sean Callananfafffe02012-04-13 00:10:03 +000016uint64_t g_TotalSizeOfMetadata = 0;
17
Sean Callanan2fc7e8d2011-12-03 03:15:28 +000018ClangExternalASTSourceCommon::ClangExternalASTSourceCommon() : clang::ExternalASTSource()
19{
20 m_magic = ClangExternalASTSourceCommon_MAGIC;
Sean Callananfafffe02012-04-13 00:10:03 +000021
22 g_TotalSizeOfMetadata += m_metadata.size();
23}
24
25ClangExternalASTSourceCommon::~ClangExternalASTSourceCommon()
26{
27 g_TotalSizeOfMetadata -= m_metadata.size();
Sean Callanan2fc7e8d2011-12-03 03:15:28 +000028}
29
30uint64_t ClangExternalASTSourceCommon::GetMetadata (uintptr_t object)
31{
32 assert (m_magic == ClangExternalASTSourceCommon_MAGIC);
33
34 return m_metadata[object];
35}
36
37void ClangExternalASTSourceCommon::SetMetadata (uintptr_t object, uint64_t metadata)
38{
39 assert (m_magic == ClangExternalASTSourceCommon_MAGIC);
40
Sean Callananfafffe02012-04-13 00:10:03 +000041 uint64_t orig_size = m_metadata.size();
Sean Callanan2fc7e8d2011-12-03 03:15:28 +000042 m_metadata[object] = metadata;
Sean Callananfafffe02012-04-13 00:10:03 +000043 uint64_t new_size = m_metadata.size();
44 g_TotalSizeOfMetadata += (new_size - orig_size);
Sean Callanan2fc7e8d2011-12-03 03:15:28 +000045}
46
47bool ClangExternalASTSourceCommon::HasMetadata (uintptr_t object)
48{
49 assert (m_magic == ClangExternalASTSourceCommon_MAGIC);
50
51 return m_metadata.find(object) != m_metadata.end();
Greg Clayton16d21872011-12-03 20:02:42 +000052}