[Lldb-commits] [lldb] r246130 - Switch data formatters over to using std::function for their callbacks instead of raw function pointers. NFC

Enrico Granata via lldb-commits lldb-commits at lists.llvm.org
Wed Aug 26 17:45:33 PDT 2015


Author: enrico
Date: Wed Aug 26 19:45:33 2015
New Revision: 246130

URL: http://llvm.org/viewvc/llvm-project?rev=246130&view=rev
Log:
Switch data formatters over to using std::function for their callbacks instead of raw function pointers. NFC

Modified:
    lldb/trunk/include/lldb/DataFormatters/FormattersContainer.h
    lldb/trunk/include/lldb/DataFormatters/TypeFormat.h
    lldb/trunk/include/lldb/DataFormatters/TypeSummary.h
    lldb/trunk/include/lldb/DataFormatters/TypeSynthetic.h
    lldb/trunk/include/lldb/DataFormatters/TypeValidator.h
    lldb/trunk/source/API/SBTypeSummary.cpp
    lldb/trunk/source/DataFormatters/TypeSummary.cpp
    lldb/trunk/source/DataFormatters/TypeSynthetic.cpp

Modified: lldb/trunk/include/lldb/DataFormatters/FormattersContainer.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/FormattersContainer.h?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/include/lldb/DataFormatters/FormattersContainer.h (original)
+++ lldb/trunk/include/lldb/DataFormatters/FormattersContainer.h Wed Aug 26 19:45:33 2015
@@ -12,6 +12,7 @@
 
 // C Includes
 // C++ Includes
+#include <functional>
 
 // Other libraries and framework includes
 #include "clang/AST/DeclCXX.h"
@@ -92,7 +93,7 @@ public:
     typedef typename ValueType::SharedPointer ValueSP;
     typedef std::map<KeyType, ValueSP> MapType;
     typedef typename MapType::iterator MapIterator;
-    typedef bool(*CallbackType)(void*, KeyType, const ValueSP&);
+    typedef std::function<bool(void*, KeyType, const ValueSP&)> CallbackType;
     
     FormatMap(IFormatChangeListener* lst) :
     m_map(),

Modified: lldb/trunk/include/lldb/DataFormatters/TypeFormat.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/TypeFormat.h?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/include/lldb/DataFormatters/TypeFormat.h (original)
+++ lldb/trunk/include/lldb/DataFormatters/TypeFormat.h Wed Aug 26 19:45:33 2015
@@ -13,6 +13,7 @@
 // C Includes
 
 // C++ Includes
+#include <functional>
 #include <string>
 #include <unordered_map>
 
@@ -150,7 +151,7 @@ namespace lldb_private {
         TypeFormatImpl (const Flags& flags = Flags());
         
         typedef std::shared_ptr<TypeFormatImpl> SharedPointer;
-        typedef bool(*ValueCallback)(void*, ConstString, const lldb::TypeFormatImplSP&);
+        typedef std::function<bool(void*, ConstString, lldb::TypeFormatImplSP)> ValueCallback;
         
         virtual ~TypeFormatImpl ();
         
@@ -258,7 +259,7 @@ namespace lldb_private {
                                const TypeFormatImpl::Flags& flags = Flags());
         
         typedef std::shared_ptr<TypeFormatImpl_Format> SharedPointer;
-        typedef bool(*ValueCallback)(void*, ConstString, const TypeFormatImpl_Format::SharedPointer&);
+        typedef std::function<bool(void*, ConstString, TypeFormatImpl_Format::SharedPointer)> ValueCallback;
         
         ~TypeFormatImpl_Format() override;
         
@@ -301,7 +302,7 @@ namespace lldb_private {
                                  const TypeFormatImpl::Flags& flags = Flags());
         
         typedef std::shared_ptr<TypeFormatImpl_EnumType> SharedPointer;
-        typedef bool(*ValueCallback)(void*, ConstString, const TypeFormatImpl_EnumType::SharedPointer&);
+        typedef std::function<bool(void*, ConstString, TypeFormatImpl_EnumType::SharedPointer)> ValueCallback;
         
         ~TypeFormatImpl_EnumType() override;
         

Modified: lldb/trunk/include/lldb/DataFormatters/TypeSummary.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/TypeSummary.h?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/include/lldb/DataFormatters/TypeSummary.h (original)
+++ lldb/trunk/include/lldb/DataFormatters/TypeSummary.h Wed Aug 26 19:45:33 2015
@@ -14,6 +14,7 @@
 #include <stdint.h>
 
 // C++ Includes
+#include <functional>
 #include <string>
 #include <vector>
 
@@ -409,8 +410,8 @@ namespace lldb_private {
         }
         
         typedef std::shared_ptr<TypeSummaryImpl> SharedPointer;
-        typedef bool(*SummaryCallback)(void*, ConstString, const lldb::TypeSummaryImplSP&);
-        typedef bool(*RegexSummaryCallback)(void*, lldb::RegularExpressionSP, const lldb::TypeSummaryImplSP&);
+        typedef std::function<bool(void*, ConstString, TypeSummaryImpl::SharedPointer)> SummaryCallback;
+        typedef std::function<bool(void*, lldb::RegularExpressionSP, TypeSummaryImpl::SharedPointer)> RegexSummaryCallback;
         
     protected:
         uint32_t m_my_revision;
@@ -472,9 +473,9 @@ namespace lldb_private {
     {
         // we should convert these to SBValue and SBStream if we ever cross
         // the boundary towards the external world
-        typedef bool (*Callback)(ValueObject&,
-                                 Stream&,
-                                 const TypeSummaryOptions&);
+        typedef std::function<bool(ValueObject&,
+                                   Stream&,
+                                   const TypeSummaryOptions&)> Callback;
         
         Callback m_impl;
         std::string m_description;

Modified: lldb/trunk/include/lldb/DataFormatters/TypeSynthetic.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/TypeSynthetic.h?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/include/lldb/DataFormatters/TypeSynthetic.h (original)
+++ lldb/trunk/include/lldb/DataFormatters/TypeSynthetic.h Wed Aug 26 19:45:33 2015
@@ -14,6 +14,7 @@
 #include <stdint.h>
 
 // C++ Includes
+#include <functional>
 #include <string>
 #include <vector>
 
@@ -344,7 +345,7 @@ namespace lldb_private {
         GetFrontEnd (ValueObject &backend) = 0;
         
         typedef std::shared_ptr<SyntheticChildren> SharedPointer;
-        typedef bool(*SyntheticChildrenCallback)(void*, ConstString, const SyntheticChildren::SharedPointer&);
+        typedef std::function<bool(void*, ConstString, SyntheticChildren::SharedPointer)> SyntheticChildrenCallback;
         
         uint32_t&
         GetRevision ()
@@ -485,11 +486,7 @@ namespace lldb_private {
     class CXXSyntheticChildren : public SyntheticChildren
     {
     public:
-        typedef SyntheticChildrenFrontEnd* (*CreateFrontEndCallback) (CXXSyntheticChildren*, lldb::ValueObjectSP);
-    protected:
-        CreateFrontEndCallback m_create_callback;
-        std::string m_description;
-    public:
+        typedef std::function<SyntheticChildrenFrontEnd*(CXXSyntheticChildren*, lldb::ValueObjectSP)> CreateFrontEndCallback;
         CXXSyntheticChildren (const SyntheticChildren::Flags& flags,
                               const char* description,
                               CreateFrontEndCallback callback) :
@@ -514,6 +511,10 @@ namespace lldb_private {
             return SyntheticChildrenFrontEnd::AutoPointer(m_create_callback(this, backend.GetSP()));
         }
         
+    protected:
+        CreateFrontEndCallback m_create_callback;
+        std::string m_description;
+
     private:
         DISALLOW_COPY_AND_ASSIGN(CXXSyntheticChildren);
     };

Modified: lldb/trunk/include/lldb/DataFormatters/TypeValidator.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/DataFormatters/TypeValidator.h?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/include/lldb/DataFormatters/TypeValidator.h (original)
+++ lldb/trunk/include/lldb/DataFormatters/TypeValidator.h Wed Aug 26 19:45:33 2015
@@ -13,8 +13,8 @@
 // C Includes
 
 // C++ Includes
-#include <string>
 #include <functional>
+#include <string>
 
 // Other libraries and framework includes
 
@@ -150,7 +150,7 @@ public:
     TypeValidatorImpl (const Flags& flags = Flags());
     
     typedef std::shared_ptr<TypeValidatorImpl> SharedPointer;
-    typedef bool(*ValueCallback)(void*, ConstString, const lldb::TypeValidatorImplSP&);
+    typedef std::function<bool(void*, ConstString, TypeValidatorImpl::SharedPointer)> ValueCallback;
     
     virtual ~TypeValidatorImpl ();
     
@@ -265,7 +265,7 @@ public:
     TypeValidatorImpl_CXX (ValidatorFunction f, std::string d, const TypeValidatorImpl::Flags& flags = Flags());
     
     typedef std::shared_ptr<TypeValidatorImpl_CXX> SharedPointer;
-    typedef bool(*ValueCallback)(void*, ConstString, const TypeValidatorImpl_CXX::SharedPointer&);
+    typedef std::function<bool(void*, ConstString, TypeValidatorImpl_CXX::SharedPointer)> ValueCallback;
     
     ~TypeValidatorImpl_CXX() override;
     

Modified: lldb/trunk/source/API/SBTypeSummary.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBTypeSummary.cpp?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/source/API/SBTypeSummary.cpp (original)
+++ lldb/trunk/source/API/SBTypeSummary.cpp Wed Aug 26 19:45:33 2015
@@ -315,7 +315,7 @@ SBTypeSummary::IsEqualTo (lldb::SBTypeSu
     {
         lldb_private::CXXFunctionSummaryFormat *self_cxx = (lldb_private::CXXFunctionSummaryFormat*)m_opaque_sp.get();
         lldb_private::CXXFunctionSummaryFormat *other_cxx = (lldb_private::CXXFunctionSummaryFormat*)rhs.m_opaque_sp.get();
-        return (self_cxx->m_impl == other_cxx->m_impl);
+        return (self_cxx == other_cxx);
     }
     
     if (m_opaque_sp->IsScripted() != rhs.m_opaque_sp->IsScripted())

Modified: lldb/trunk/source/DataFormatters/TypeSummary.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/TypeSummary.cpp?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/source/DataFormatters/TypeSummary.cpp (original)
+++ lldb/trunk/source/DataFormatters/TypeSummary.cpp Wed Aug 26 19:45:33 2015
@@ -193,15 +193,15 @@ std::string
 CXXFunctionSummaryFormat::GetDescription ()
 {
     StreamString sstr;
-    sstr.Printf ("`%s (%p) `%s%s%s%s%s%s%s", m_description.c_str(),
-                 static_cast<void*>(&m_impl),
+    sstr.Printf ("%s%s%s%s%s%s%s %s",
                  Cascades() ? "" : " (not cascading)",
                  !DoesPrintChildren(nullptr) ? "" : " (show children)",
                  !DoesPrintValue(nullptr) ? " (hide value)" : "",
                  IsOneLiner() ? " (one-line printout)" : "",
                  SkipsPointers() ? " (skip pointers)" : "",
                  SkipsReferences() ? " (skip references)" : "",
-                 HideNames(nullptr) ? " (hide member names)" : "");
+                 HideNames(nullptr) ? " (hide member names)" : "",
+                 m_description.c_str());
     return sstr.GetString();
 }
 

Modified: lldb/trunk/source/DataFormatters/TypeSynthetic.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/TypeSynthetic.cpp?rev=246130&r1=246129&r2=246130&view=diff
==============================================================================
--- lldb/trunk/source/DataFormatters/TypeSynthetic.cpp (original)
+++ lldb/trunk/source/DataFormatters/TypeSynthetic.cpp Wed Aug 26 19:45:33 2015
@@ -111,11 +111,10 @@ std::string
 CXXSyntheticChildren::GetDescription()
 {
     StreamString sstr;
-    sstr.Printf("%s%s%s Generator at %p - %s",
+    sstr.Printf("%s%s%s %s",
                 Cascades() ? "" : " (not cascading)",
                 SkipsPointers() ? " (skip pointers)" : "",
                 SkipsReferences() ? " (skip references)" : "",
-                reinterpret_cast<void*>(reinterpret_cast<intptr_t>(m_create_callback)),
                 m_description.c_str());
 
     return sstr.GetString();




More information about the lldb-commits mailing list