diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:51:52 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:51:52 +0000 | 
| commit | 5f29bb8a675e8f96452b632e7129113f7dec850e (patch) | |
| tree | 3d3f2a0d3ad10872a4dcaba8ec8d1d20c87ab147 /source/API/SBStringList.cpp | |
| parent | 88c643b6fec27eec436c8d138fee6346e92337d6 (diff) | |
Notes
Diffstat (limited to 'source/API/SBStringList.cpp')
| -rw-r--r-- | source/API/SBStringList.cpp | 128 | 
1 files changed, 91 insertions, 37 deletions
| diff --git a/source/API/SBStringList.cpp b/source/API/SBStringList.cpp index 6ed4d4b7fb824..2f8bd55855a11 100644 --- a/source/API/SBStringList.cpp +++ b/source/API/SBStringList.cpp @@ -1,109 +1,163 @@  //===-- SBStringList.cpp ----------------------------------------*- C++ -*-===//  // -//                     The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception  //  //===----------------------------------------------------------------------===//  #include "lldb/API/SBStringList.h" - +#include "SBReproducerPrivate.h" +#include "Utils.h"  #include "lldb/Utility/StringList.h"  using namespace lldb;  using namespace lldb_private; -SBStringList::SBStringList() : m_opaque_ap() {} +SBStringList::SBStringList() : m_opaque_up() { +  LLDB_RECORD_CONSTRUCTOR_NO_ARGS(SBStringList); +}  SBStringList::SBStringList(const lldb_private::StringList *lldb_strings_ptr) -    : m_opaque_ap() { +    : m_opaque_up() {    if (lldb_strings_ptr) -    m_opaque_ap.reset(new lldb_private::StringList(*lldb_strings_ptr)); +    m_opaque_up = llvm::make_unique<StringList>(*lldb_strings_ptr);  } -SBStringList::SBStringList(const SBStringList &rhs) : m_opaque_ap() { -  if (rhs.IsValid()) -    m_opaque_ap.reset(new lldb_private::StringList(*rhs)); +SBStringList::SBStringList(const SBStringList &rhs) : m_opaque_up() { +  LLDB_RECORD_CONSTRUCTOR(SBStringList, (const lldb::SBStringList &), rhs); + +  m_opaque_up = clone(rhs.m_opaque_up);  }  const SBStringList &SBStringList::operator=(const SBStringList &rhs) { -  if (this != &rhs) { -    if (rhs.IsValid()) -      m_opaque_ap.reset(new lldb_private::StringList(*rhs)); -    else -      m_opaque_ap.reset(); -  } -  return *this; +  LLDB_RECORD_METHOD(const lldb::SBStringList &, +                     SBStringList, operator=,(const lldb::SBStringList &), rhs); + +  if (this != &rhs) +    m_opaque_up = clone(rhs.m_opaque_up); +  return LLDB_RECORD_RESULT(*this);  }  SBStringList::~SBStringList() {}  const lldb_private::StringList *SBStringList::operator->() const { -  return m_opaque_ap.get(); +  return m_opaque_up.get();  }  const lldb_private::StringList &SBStringList::operator*() const { -  return *m_opaque_ap; +  return *m_opaque_up;  } -bool SBStringList::IsValid() const { return (m_opaque_ap != NULL); } +bool SBStringList::IsValid() const { +  LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBStringList, IsValid); +  return this->operator bool(); +} +SBStringList::operator bool() const { +  LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBStringList, operator bool); + +  return (m_opaque_up != nullptr); +}  void SBStringList::AppendString(const char *str) { -  if (str != NULL) { +  LLDB_RECORD_METHOD(void, SBStringList, AppendString, (const char *), str); + +  if (str != nullptr) {      if (IsValid()) -      m_opaque_ap->AppendString(str); +      m_opaque_up->AppendString(str);      else -      m_opaque_ap.reset(new lldb_private::StringList(str)); +      m_opaque_up.reset(new lldb_private::StringList(str));    }  }  void SBStringList::AppendList(const char **strv, int strc) { -  if ((strv != NULL) && (strc > 0)) { +  LLDB_RECORD_METHOD(void, SBStringList, AppendList, (const char **, int), strv, +                     strc); + +  if ((strv != nullptr) && (strc > 0)) {      if (IsValid()) -      m_opaque_ap->AppendList(strv, strc); +      m_opaque_up->AppendList(strv, strc);      else -      m_opaque_ap.reset(new lldb_private::StringList(strv, strc)); +      m_opaque_up.reset(new lldb_private::StringList(strv, strc));    }  }  void SBStringList::AppendList(const SBStringList &strings) { +  LLDB_RECORD_METHOD(void, SBStringList, AppendList, +                     (const lldb::SBStringList &), strings); +    if (strings.IsValid()) {      if (!IsValid()) -      m_opaque_ap.reset(new lldb_private::StringList()); -    m_opaque_ap->AppendList(*(strings.m_opaque_ap)); +      m_opaque_up.reset(new lldb_private::StringList()); +    m_opaque_up->AppendList(*(strings.m_opaque_up));    }  }  void SBStringList::AppendList(const StringList &strings) {    if (!IsValid()) -    m_opaque_ap.reset(new lldb_private::StringList()); -  m_opaque_ap->AppendList(strings); +    m_opaque_up.reset(new lldb_private::StringList()); +  m_opaque_up->AppendList(strings);  }  uint32_t SBStringList::GetSize() const { +  LLDB_RECORD_METHOD_CONST_NO_ARGS(uint32_t, SBStringList, GetSize); +    if (IsValid()) { -    return m_opaque_ap->GetSize(); +    return m_opaque_up->GetSize();    }    return 0;  }  const char *SBStringList::GetStringAtIndex(size_t idx) { +  LLDB_RECORD_METHOD(const char *, SBStringList, GetStringAtIndex, (size_t), +                     idx); +    if (IsValid()) { -    return m_opaque_ap->GetStringAtIndex(idx); +    return m_opaque_up->GetStringAtIndex(idx);    } -  return NULL; +  return nullptr;  }  const char *SBStringList::GetStringAtIndex(size_t idx) const { +  LLDB_RECORD_METHOD_CONST(const char *, SBStringList, GetStringAtIndex, +                           (size_t), idx); +    if (IsValid()) { -    return m_opaque_ap->GetStringAtIndex(idx); +    return m_opaque_up->GetStringAtIndex(idx);    } -  return NULL; +  return nullptr;  }  void SBStringList::Clear() { +  LLDB_RECORD_METHOD_NO_ARGS(void, SBStringList, Clear); +    if (IsValid()) { -    m_opaque_ap->Clear(); +    m_opaque_up->Clear();    }  } + +namespace lldb_private { +namespace repro { + +template <> +void RegisterMethods<SBStringList>(Registry &R) { +  LLDB_REGISTER_CONSTRUCTOR(SBStringList, ()); +  LLDB_REGISTER_CONSTRUCTOR(SBStringList, (const lldb::SBStringList &)); +  LLDB_REGISTER_METHOD(const lldb::SBStringList &, +                       SBStringList, operator=,(const lldb::SBStringList &)); +  LLDB_REGISTER_METHOD_CONST(bool, SBStringList, IsValid, ()); +  LLDB_REGISTER_METHOD_CONST(bool, SBStringList, operator bool, ()); +  LLDB_REGISTER_METHOD(void, SBStringList, AppendString, (const char *)); +  LLDB_REGISTER_METHOD(void, SBStringList, AppendList, (const char **, int)); +  LLDB_REGISTER_METHOD(void, SBStringList, AppendList, +                       (const lldb::SBStringList &)); +  LLDB_REGISTER_METHOD_CONST(uint32_t, SBStringList, GetSize, ()); +  LLDB_REGISTER_METHOD(const char *, SBStringList, GetStringAtIndex, +                       (size_t)); +  LLDB_REGISTER_METHOD_CONST(const char *, SBStringList, GetStringAtIndex, +                             (size_t)); +  LLDB_REGISTER_METHOD(void, SBStringList, Clear, ()); +} + +} +} | 
