//===-- ClangPersistentVariables.cpp ----------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "ClangPersistentVariables.h" #include "lldb/Core/Log.h" #include "lldb/Core/StreamString.h" using namespace lldb_private; using namespace clang; ClangPersistentVariables::ClangPersistentVariables () : m_variables(), m_result_counter(0) { } ClangPersistentVariable * ClangPersistentVariables::CreateVariable (ConstString name, TypeFromUser user_type) { ClangPersistentVariable new_var(user_type); if (m_variables.find(name) != m_variables.end()) return NULL; m_variables[name] = new_var; return &m_variables[name]; } ClangPersistentVariable * ClangPersistentVariables::CreateResultVariable (TypeFromUser user_type) { StreamString s; s.Printf("$%llu", m_result_counter); ConstString name(s.GetString().c_str()); ClangPersistentVariable *ret = CreateVariable (name, user_type); if (ret != NULL) ++m_result_counter; return ret; } ClangPersistentVariable * ClangPersistentVariables::GetVariable (ConstString name) { if (m_variables.find(name) == m_variables.end()) return NULL; return &m_variables[name]; }