[Lldb-commits] [lldb] r340179 - Remove manual byte counting from Opcode::Dump

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Mon Aug 20 08:51:14 PDT 2018


Author: teemperor
Date: Mon Aug 20 08:51:14 2018
New Revision: 340179

URL: http://llvm.org/viewvc/llvm-project?rev=340179&view=rev
Log:
Remove manual byte counting from Opcode::Dump

Summary:
Stream now has byte-counting functionality, so let's use this instead of manual byte
counting.

Reviewers: clayborg, davide

Reviewed By: davide

Subscribers: davide, lldb-commits

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

Modified:
    lldb/trunk/source/Core/Opcode.cpp

Modified: lldb/trunk/source/Core/Opcode.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Opcode.cpp?rev=340179&r1=340178&r2=340179&view=diff
==============================================================================
--- lldb/trunk/source/Core/Opcode.cpp (original)
+++ lldb/trunk/source/Core/Opcode.cpp Mon Aug 20 08:51:14 2018
@@ -23,40 +23,41 @@ using namespace lldb;
 using namespace lldb_private;
 
 int Opcode::Dump(Stream *s, uint32_t min_byte_width) {
-  int bytes_written = 0;
+  const uint32_t previous_bytes = s->GetWrittenBytes();
   switch (m_type) {
   case Opcode::eTypeInvalid:
-    bytes_written = s->PutCString("<invalid>");
+    s->PutCString("<invalid>");
     break;
   case Opcode::eType8:
-    bytes_written = s->Printf("0x%2.2x", m_data.inst8);
+    s->Printf("0x%2.2x", m_data.inst8);
     break;
   case Opcode::eType16:
-    bytes_written = s->Printf("0x%4.4x", m_data.inst16);
+    s->Printf("0x%4.4x", m_data.inst16);
     break;
   case Opcode::eType16_2:
   case Opcode::eType32:
-    bytes_written = s->Printf("0x%8.8x", m_data.inst32);
+    s->Printf("0x%8.8x", m_data.inst32);
     break;
 
   case Opcode::eType64:
-    bytes_written = s->Printf("0x%16.16" PRIx64, m_data.inst64);
+    s->Printf("0x%16.16" PRIx64, m_data.inst64);
     break;
 
   case Opcode::eTypeBytes:
     for (uint32_t i = 0; i < m_data.inst.length; ++i) {
       if (i > 0)
-        bytes_written += s->PutChar(' ');
-      bytes_written += s->Printf("%2.2x", m_data.inst.bytes[i]);
+        s->PutChar(' ');
+      s->Printf("%2.2x", m_data.inst.bytes[i]);
     }
     break;
   }
 
-  // Add spaces to make sure bytes dispay comes out even in case opcodes aren't
-  // all the same size
-  if (static_cast<uint32_t>(bytes_written) < min_byte_width)
-    bytes_written = s->Printf("%*s", min_byte_width - bytes_written, "");
-  return bytes_written;
+  uint32_t bytes_written_so_far = s->GetWrittenBytes() - previous_bytes;
+  // Add spaces to make sure bytes display comes out even in case opcodes aren't
+  // all the same size.
+  if (bytes_written_so_far < min_byte_width)
+    s->Printf("%*s", min_byte_width - bytes_written_so_far, "");
+  return s->GetWrittenBytes() - previous_bytes;
 }
 
 lldb::ByteOrder Opcode::GetDataByteOrder() const {




More information about the lldb-commits mailing list