clayborg accepted this revision.
clayborg added a comment.
This revision is now accepted and ready to land.

I am fine with the llvm::StringRef until it causes a crash. So really look at 
all the ways you construct a llvm::StringRef and make sure it won't assert ever 
if you leave it as a llvm::StringRef.


================
Comment at: source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp:268
@@ +267,3 @@
+            inferior_stdout.append(1, (char)ch);
+    }
+    delegate.HandleAsyncStdout(inferior_stdout);
----------------
Actually, feel free to switch over to using GetHexByteString, but maybe just 
put the reserve part into that function's implementation? Then this code would 
be just:

```
packet. GetHexByteString(inferior_stdout);
```

================
Comment at: source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h:31
@@ +30,3 @@
+        virtual void
+        HandleAsyncMisc(llvm::StringRef data) = 0;
+        virtual void
----------------
I just really don't like that a llvm::StringRef constructed with a null "const 
char *" will crash LLDB due to an assertion. It has cause crashes in the past 
when you have the result of a function being fed into a llvm::StringRef. I 
really want to make a lldb::StringRef that subclasses llvm::StringRef and fixes 
this as I really don't think it is useful. Why can't an llvm::StringRef be 
constructed with NULL????


https://reviews.llvm.org/D22629



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to