Don't allow direct access to StreamString's internal buffer.
This is a large API change that removes the two functions from
StreamString that return a std::string& and a const std::string&,
and instead provide one function which returns a StringRef.
Direct access to the underlying buffer violates the concept of
a "stream" which is intended to provide forward only access,
and makes porting to llvm::raw_ostream more difficult in the
future.
Differential Revision: https://reviews.llvm.org/D26698
llvm-svn: 287152
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
index a0b2304..82f1a5d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
@@ -153,8 +153,8 @@
StreamString name;
name.Printf("[%" PRIu64 "]", (uint64_t)idx);
ValueObjectSP retval_sp(CreateValueObjectFromData(
- name.GetData(), DataExtractor(buffer_sp, process_sp->GetByteOrder(),
- process_sp->GetAddressByteSize()),
+ name.GetString(), DataExtractor(buffer_sp, process_sp->GetByteOrder(),
+ process_sp->GetAddressByteSize()),
m_exe_ctx_ref, m_bool_type));
if (retval_sp)
m_children[idx] = retval_sp;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
index d7cab15..b7aa70c 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
@@ -83,7 +83,7 @@
offset = offset + m_start->GetValueAsUnsigned(0);
StreamString name;
name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- return CreateValueObjectFromAddress(name.GetData(), offset,
+ return CreateValueObjectFromAddress(name.GetString(), offset,
m_backend.GetExecutionContextRef(),
m_element_type);
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
index eb42b44..16bd631 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
@@ -298,8 +298,9 @@
StreamString name;
name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- return CreateValueObjectFromData(
- name.GetData(), data, m_backend.GetExecutionContextRef(), m_element_type);
+ return CreateValueObjectFromData(name.GetString(), data,
+ m_backend.GetExecutionContextRef(),
+ m_element_type);
}
bool lldb_private::formatters::LibcxxStdListSyntheticFrontEnd::Update() {
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
index cd0855a..e8fcd0f 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
@@ -399,7 +399,8 @@
StreamString name;
name.Printf("[%" PRIu64 "]", (uint64_t)idx);
auto potential_child_sp = CreateValueObjectFromData(
- name.GetData(), data, m_backend.GetExecutionContextRef(), m_element_type);
+ name.GetString(), data, m_backend.GetExecutionContextRef(),
+ m_element_type);
if (potential_child_sp) {
switch (potential_child_sp->GetNumChildren()) {
case 1: {
@@ -417,7 +418,7 @@
break;
}
}
- potential_child_sp->SetName(ConstString(name.GetData()));
+ potential_child_sp->SetName(ConstString(name.GetString()));
}
m_iterators[idx] = iterator;
return potential_child_sp;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
index fa3cd74..5fe4b3a 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
@@ -139,7 +139,7 @@
const bool thread_and_frame_only_if_stopped = true;
ExecutionContext exe_ctx = val_hash.first->GetExecutionContextRef().Lock(
thread_and_frame_only_if_stopped);
- return CreateValueObjectFromData(stream.GetData(), data, exe_ctx,
+ return CreateValueObjectFromData(stream.GetString(), data, exe_ctx,
val_hash.first->GetCompilerType());
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
index 950dcee..b5c9b6d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
@@ -93,7 +93,7 @@
offset = offset + m_start->GetValueAsUnsigned(0);
StreamString name;
name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- return CreateValueObjectFromAddress(name.GetData(), offset,
+ return CreateValueObjectFromAddress(name.GetString(), offset,
m_backend.GetExecutionContextRef(),
m_element_type);
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
index d5fd386..c4a6e3d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
@@ -73,7 +73,7 @@
if (value_sp) {
StreamString name;
name.Printf("[%zd]", m_members.size());
- value_sp->SetName(ConstString(name.GetData()));
+ value_sp->SetName(ConstString(name.GetString()));
m_members.push_back(value_sp);
}
diff --git a/lldb/source/Plugins/Language/Go/GoFormatterFunctions.cpp b/lldb/source/Plugins/Language/Go/GoFormatterFunctions.cpp
index 110fc63..0f78f64 100644
--- a/lldb/source/Plugins/Language/Go/GoFormatterFunctions.cpp
+++ b/lldb/source/Plugins/Language/Go/GoFormatterFunctions.cpp
@@ -42,7 +42,7 @@
lldb::addr_t object_at_idx = m_base_data_address;
object_at_idx += idx * m_type.GetByteSize(nullptr);
cached = CreateValueObjectFromAddress(
- idx_name.GetData(), object_at_idx,
+ idx_name.GetString(), object_at_idx,
m_backend.GetExecutionContextRef(), m_type);
}
return cached;
diff --git a/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp b/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp
index 8ee8ef5..286651a 100644
--- a/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp
+++ b/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp
@@ -70,7 +70,7 @@
DataExtractor data(buffer_sp, process_sp->GetByteOrder(),
process_sp->GetAddressByteSize());
return CreateValueObjectFromData(
- name.GetData(), data, valobj->GetExecutionContextRef(), element_type);
+ name.GetString(), data, valobj->GetExecutionContextRef(), element_type);
}
bool Update() override { return false; }
diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
index 034687b..6ab6d53 100644
--- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
@@ -350,7 +350,7 @@
object_at_idx += (pyhs_idx * m_ptr_size);
StreamString idx_name;
idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- return CreateValueObjectFromAddress(idx_name.GetData(), object_at_idx,
+ return CreateValueObjectFromAddress(idx_name.GetString(), object_at_idx,
m_exe_ctx_ref, m_id_type);
}
@@ -571,7 +571,7 @@
return lldb::ValueObjectSP();
StreamString idx_name;
idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- return CreateValueObjectFromAddress(idx_name.GetData(), object_at_idx,
+ return CreateValueObjectFromAddress(idx_name.GetString(), object_at_idx,
m_exe_ctx_ref, m_id_type);
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
index 022a471..5cc52c8 100644
--- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
@@ -499,7 +499,7 @@
StreamString idx_name;
idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx);
DataExtractor data(buffer_sp, m_order, m_ptr_size);
- dict_item.valobj_sp = CreateValueObjectFromData(idx_name.GetData(), data,
+ dict_item.valobj_sp = CreateValueObjectFromData(idx_name.GetString(), data,
m_exe_ctx_ref, m_pair_type);
}
return dict_item.valobj_sp;
@@ -729,7 +729,7 @@
StreamString idx_name;
idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx);
DataExtractor data(buffer_sp, m_order, m_ptr_size);
- dict_item.valobj_sp = CreateValueObjectFromData(idx_name.GetData(), data,
+ dict_item.valobj_sp = CreateValueObjectFromData(idx_name.GetString(), data,
m_exe_ctx_ref, m_pair_type);
}
return dict_item.valobj_sp;
diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
index d169334..9533e96 100644
--- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
@@ -210,8 +210,8 @@
StreamString idx_name;
idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- return ValueObjectConstResult::Create(m_process, v,
- ConstString(idx_name.GetData()));
+ return ValueObjectConstResult::Create(
+ m_process, v, ConstString(idx_name.GetString()));
}
void Clear() {
diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
index a9ca98c..9757c58 100644
--- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
@@ -435,7 +435,7 @@
process_sp->GetAddressByteSize());
set_item.valobj_sp = CreateValueObjectFromData(
- idx_name.GetData(), data, m_exe_ctx_ref,
+ idx_name.GetString(), data, m_exe_ctx_ref,
m_backend.GetCompilerType().GetBasicTypeFromAST(
lldb::eBasicTypeObjCID));
}
@@ -586,7 +586,7 @@
process_sp->GetAddressByteSize());
set_item.valobj_sp = CreateValueObjectFromData(
- idx_name.GetData(), data, m_exe_ctx_ref,
+ idx_name.GetString(), data, m_exe_ctx_ref,
m_backend.GetCompilerType().GetBasicTypeFromAST(
lldb::eBasicTypeObjCID));
}
diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
index 526ace1..6e59a8b 100644
--- a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
+++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
@@ -217,7 +217,7 @@
strm.PutChar('-');
strm.Printf("[%s %s]", GetClassName().GetCString(),
GetSelector().GetCString());
- return ConstString(strm.GetString().c_str());
+ return ConstString(strm.GetString());
}
if (!empty_if_no_category) {
@@ -242,25 +242,25 @@
if (category) {
strm.Printf("%c[%s %s]", is_class_method ? '+' : '-',
GetClassName().GetCString(), GetSelector().GetCString());
- names.push_back(ConstString(strm.GetString().c_str()));
+ names.emplace_back(strm.GetString());
}
} else {
const ConstString &class_name = GetClassName();
const ConstString &selector = GetSelector();
strm.Printf("+[%s %s]", class_name.GetCString(), selector.GetCString());
- names.push_back(ConstString(strm.GetString().c_str()));
+ names.emplace_back(strm.GetString());
strm.Clear();
strm.Printf("-[%s %s]", class_name.GetCString(), selector.GetCString());
- names.push_back(ConstString(strm.GetString().c_str()));
+ names.emplace_back(strm.GetString());
strm.Clear();
if (category) {
strm.Printf("+[%s(%s) %s]", class_name.GetCString(),
category.GetCString(), selector.GetCString());
- names.push_back(ConstString(strm.GetString().c_str()));
+ names.emplace_back(strm.GetString());
strm.Clear();
strm.Printf("-[%s(%s) %s]", class_name.GetCString(),
category.GetCString(), selector.GetCString());
- names.push_back(ConstString(strm.GetString().c_str()));
+ names.emplace_back(strm.GetString());
}
}
}