From 3bcee02643609e036108151ff8ac5fadb58ef99f Mon Sep 17 00:00:00 2001 From: Enrico Granata Date: Fri, 29 Jul 2011 23:59:08 +0000 Subject: changes in the new GetMinimumLanguages() ; robustness improvements in the CFStringSynthProvider object ; made a CFString_SummaryProvider function you can use if all you care about is the summary string for your NSString objects llvm-svn: 136544 --- .../data-formatter/data-formatter-objc/CFString.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py') diff --git a/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py b/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py index bf82c1ddde3..0e39b73ae57 100644 --- a/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py +++ b/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py @@ -7,6 +7,8 @@ class CFStringSynthProvider: self.update() # children other than "content" are for debugging only and must not be used in production code def num_children(self): + if self.invalid: + return 0; return 6; def read_unicode(self, pointer): process = self.valobj.GetTarget().GetProcess() @@ -167,7 +169,12 @@ class CFStringSynthProvider: self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar)); cfinfo.SetFormat(11) info = cfinfo.GetValue(); - return int(info,0); + if info != None: + self.invalid = False; + return int(info,0); + else: + self.invalid = True; + return None; # calculating internal flag bits of the CFString object # this stuff is defined and discussed in CFString.c def is_mutable(self): @@ -196,6 +203,8 @@ class CFStringSynthProvider: # useful values to get at the real data def compute_flags(self): self.info_bits = self.read_info_bits(); + if self.info_bits == None: + return; self.mutable = self.is_mutable(); self.inline = self.is_inline(); self.explicit = self.has_explicit_length(); @@ -204,3 +213,9 @@ class CFStringSynthProvider: def update(self): self.adjust_for_architecture(); self.compute_flags(); +def CFString_SummaryProvider (valobj,dict): + provider = CFStringSynthProvider(valobj,dict); + if provider.invalid == True: + return ""; + return provider.get_child_at_index(provider.get_child_index("content")).GetSummary(); + -- cgit v1.2.3