[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