[Lldb-commits] [lldb] r333465 - [ObjC] Fix the formatter for NSOrderedSet.

Davide Italiano via lldb-commits lldb-commits at lists.llvm.org
Tue May 29 15:08:07 PDT 2018


Author: davide
Date: Tue May 29 15:08:07 2018
New Revision: 333465

URL: http://llvm.org/viewvc/llvm-project?rev=333465&view=rev
Log:
[ObjC] Fix the formatter for NSOrderedSet.

While I'm here, delete some dead code.

<rdar://problem/40622096>

Added:
    lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/
    lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/TestOrderedSet.py
    lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/main.m
Modified:
    lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp

Added: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/TestOrderedSet.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/TestOrderedSet.py?rev=333465&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/TestOrderedSet.py (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/TestOrderedSet.py Tue May 29 15:08:07 2018
@@ -0,0 +1,17 @@
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+class TestOrderedSet(TestBase):
+  mydir = TestBase.compute_mydir(__file__)
+
+  def test_ordered_set(self):
+    self.build()
+    src_file = "main.m"
+    src_file_spec = lldb.SBFileSpec(src_file)
+    (target, process, thread, main_breakpoint) = lldbutil.run_to_source_breakpoint(self,
+          "break here", src_file_spec, exe_name = "a.out")
+    frame = thread.GetSelectedFrame()
+    self.expect("expr -d run -- orderedSet", substrs=["3 elements"])
+    self.expect("expr -d run -- *orderedSet", substrs=["(int)1", "(int)2", "(int)3"])

Added: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/main.m
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/main.m?rev=333465&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/main.m (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/orderedset/main.m Tue May 29 15:08:07 2018
@@ -0,0 +1,8 @@
+#import <Foundation/Foundation.h>
+
+int main() {
+  NSOrderedSet *orderedSet =
+      [NSOrderedSet orderedSetWithArray:@[@1, at 2, at 3, at 1]];
+  NSLog(@"%@",orderedSet);
+  return 0; // break here
+}

Modified: lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp?rev=333465&r1=333464&r2=333465&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp (original)
+++ lldb/trunk/source/Plugins/Language/ObjC/NSSet.cpp Tue May 29 15:08:07 2018
@@ -269,7 +269,8 @@ bool lldb_private::formatters::NSSetSumm
   if (!class_name || !*class_name)
     return false;
 
-  if (!strcmp(class_name, "__NSSetI")) {
+  if (!strcmp(class_name, "__NSSetI") ||
+      !strcmp(class_name, "__NSOrderedSetI")) {
     Status error;
     value = process_sp->ReadUnsignedIntegerFromMemory(valobj_addr + ptr_size,
                                                       ptr_size, 0, error);
@@ -289,32 +290,7 @@ bool lldb_private::formatters::NSSetSumm
     }
     if (error.Fail())
       return false;
-  }
-  /*else if (!strcmp(class_name,"__NSCFSet"))
-   {
-   Status error;
-   value = process_sp->ReadUnsignedIntegerFromMemory(valobj_addr + (is_64bit ?
-   20 : 12), 4, 0, error);
-   if (error.Fail())
-   return false;
-   if (is_64bit)
-   value &= ~0x1fff000000000000UL;
-   }
-   else if (!strcmp(class_name,"NSCountedSet"))
-   {
-   Status error;
-   value = process_sp->ReadUnsignedIntegerFromMemory(valobj_addr + ptr_size,
-   ptr_size, 0, error);
-   if (error.Fail())
-   return false;
-   value = process_sp->ReadUnsignedIntegerFromMemory(value + (is_64bit ? 20 :
-   12), 4, 0, error);
-   if (error.Fail())
-   return false;
-   if (is_64bit)
-   value &= ~0x1fff000000000000UL;
-   }*/
-  else {
+  } else {
     auto &map(NSSet_Additionals::GetAdditionalSummaries());
     auto iter = map.find(class_name_cs), end = map.end();
     if (iter != end)
@@ -371,7 +347,8 @@ lldb_private::formatters::NSSetSynthetic
   if (!class_name || !*class_name)
     return nullptr;
 
-  if (!strcmp(class_name, "__NSSetI")) {
+  if (!strcmp(class_name, "__NSSetI") ||
+      !strcmp(class_name, "__NSOrderedSetI")) {
     return (new NSSetISyntheticFrontEnd(valobj_sp));
   } else if (!strcmp(class_name, "__NSSetM")) {
     AppleObjCRuntime *apple_runtime =




More information about the lldb-commits mailing list