Add an argument to ValueObject::GetSyntheticBase that allows for name customization...
authorEnrico Granata <egranata@apple.com>
Mon, 2 May 2016 18:13:18 +0000 (18:13 +0000)
committerEnrico Granata <egranata@apple.com>
Mon, 2 May 2016 18:13:18 +0000 (18:13 +0000)
llvm-svn: 268274

lldb/include/lldb/Core/ValueObject.h
lldb/source/Core/ValueObject.cpp

index dee6388..fc99278 100644 (file)
@@ -705,7 +705,10 @@ public:
                               ConstString name_const_str = ConstString());
     
     virtual lldb::ValueObjectSP
-    GetSyntheticBase (uint32_t offset, const CompilerType& type, bool can_create);
+    GetSyntheticBase (uint32_t offset,
+                      const CompilerType& type,
+                      bool can_create,
+                      ConstString name_const_str = ConstString());
 
     virtual lldb::ValueObjectSP
     GetDynamicValue (lldb::DynamicValueType valueType);
index 69205aa..a74599e 100644 (file)
@@ -2227,13 +2227,19 @@ ValueObject::GetSyntheticChildAtOffset(uint32_t offset,
 }
 
 ValueObjectSP
-ValueObject::GetSyntheticBase (uint32_t offset, const CompilerType& type, bool can_create)
+ValueObject::GetSyntheticBase (uint32_t offset,
+                               const CompilerType& type,
+                               bool can_create,
+                               ConstString name_const_str)
 {
     ValueObjectSP synthetic_child_sp;
     
-    char name_str[64];
-    snprintf(name_str, sizeof(name_str), "%s", type.GetTypeName().AsCString("<unknown>"));
-    ConstString name_const_str(name_str);
+    if (name_const_str.IsEmpty())
+    {
+        char name_str[128];
+        snprintf(name_str, sizeof(name_str), "base%s@%i", type.GetTypeName().AsCString("<unknown>"), offset);
+        name_const_str.SetCString(name_str);
+    }
     
     // Check if we have already created a synthetic array member in this
     // valid object. If we have we will re-use it.