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/Core/EmulateInstruction.cpp b/lldb/source/Core/EmulateInstruction.cpp
index 800ff8e..4ad5b4e 100644
--- a/lldb/source/Core/EmulateInstruction.cpp
+++ b/lldb/source/Core/EmulateInstruction.cpp
@@ -194,8 +194,8 @@
   StreamString strm(Stream::eBinary, GetAddressByteSize(), GetByteOrder());
   strm.PutMaxHex64(uval, uval_byte_size);
 
-  size_t bytes_written = m_write_mem_callback(this, m_baton, context, addr,
-                                              strm.GetData(), uval_byte_size);
+  size_t bytes_written = m_write_mem_callback(
+      this, m_baton, context, addr, strm.GetString().data(), uval_byte_size);
   return (bytes_written == uval_byte_size);
 }