[lldb] Set return object failed status even if error string is empty
authorDavid Spickett <david.spickett@linaro.org>
Wed, 16 Jun 2021 13:39:50 +0000 (14:39 +0100)
committerDavid Spickett <david.spickett@linaro.org>
Thu, 17 Jun 2021 11:20:52 +0000 (12:20 +0100)
The idea is now that AppendError<...> will set eReturnStatusFailed
for you so you don't have to call SetStatus again.

Previously if the error message was empty, the status wouldn't
be set.

I don't think there are any sitautions where the message is in
fact empty but it potentially could be depending on where
we get the string from.

So let's set the status up front then return early if the message is empty.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104380

lldb/source/Interpreter/CommandReturnObject.cpp

index 531c1f2..5edd9a3 100644 (file)
@@ -98,9 +98,9 @@ void CommandReturnObject::AppendWarning(llvm::StringRef in_string) {
 }
 
 void CommandReturnObject::AppendError(llvm::StringRef in_string) {
+  SetStatus(eReturnStatusFailed);
   if (in_string.empty())
     return;
-  SetStatus(eReturnStatusFailed);
   error(GetErrorStream()) << in_string.rtrim() << '\n';
 }
 
@@ -113,6 +113,7 @@ void CommandReturnObject::SetError(const Status &error,
 }
 
 void CommandReturnObject::SetError(llvm::StringRef error_str) {
+  SetStatus(eReturnStatusFailed);
   if (error_str.empty())
     return;
 
@@ -123,10 +124,10 @@ void CommandReturnObject::SetError(llvm::StringRef error_str) {
 // append "\n" to the end of it.
 
 void CommandReturnObject::AppendRawError(llvm::StringRef in_string) {
+  SetStatus(eReturnStatusFailed);
   if (in_string.empty())
     return;
   GetErrorStream() << in_string;
-  SetStatus(eReturnStatusFailed);
 }
 
 void CommandReturnObject::SetStatus(ReturnStatus status) { m_status = status; }