Index: class-dump/src/CDOCIvar.m |
=================================================================== |
--- class-dump/src/CDOCIvar.m (revision 0) |
+++ class-dump/src/CDOCIvar.m (revision 0) |
@@ -0,0 +1,95 @@ |
+// -*- mode: ObjC -*- |
+ |
+// This file is part of class-dump, a utility for examining the Objective-C segment of Mach-O files. |
+// Copyright (C) 1997-1998, 2000-2001, 2004-2010 Steve Nygard. |
+ |
+#import "CDOCIvar.h" |
+ |
+#import "NSError-CDExtensions.h" |
+#import "CDClassDump.h" |
+#import "CDTypeFormatter.h" |
+#import "CDTypeParser.h" |
+#import "CDTypeController.h" |
+ |
+@implementation CDOCIvar |
+ |
+- (id)initWithName:(NSString *)aName type:(NSString *)aType offset:(NSUInteger)anOffset; |
+{ |
+ if ([super init] == nil) |
+ return nil; |
+ |
+ name = [aName retain]; |
+ type = [aType retain]; |
+ offset = anOffset; |
+ |
+ hasParsedType = NO; |
+ parsedType = nil; |
+ |
+ return self; |
+} |
+ |
+- (void)dealloc; |
+{ |
+ [name release]; |
+ [type release]; |
+ |
+ [parsedType release]; |
+ |
+ [super dealloc]; |
+} |
+ |
+- (NSString *)name; |
+{ |
+ return name; |
+} |
+ |
+- (NSString *)type; |
+{ |
+ return type; |
+} |
+ |
+- (NSUInteger)offset; |
+{ |
+ return offset; |
+} |
+ |
+- (CDType *)parsedType; |
+{ |
+ if (hasParsedType == NO) { |
+ CDTypeParser *parser; |
+ NSError *error; |
+ |
+ parser = [[CDTypeParser alloc] initWithType:type]; |
+ parsedType = [[parser parseType:&error] retain]; |
+ if (parsedType == nil) |
+ NSLog(@"Warning: Parsing ivar type failed, %@", name); |
+ [parser release]; |
+ |
+ hasParsedType = YES; |
+ } |
+ |
+ return parsedType; |
+} |
+ |
+- (NSString *)description; |
+{ |
+ return [NSString stringWithFormat:@"[%@] name: %@, type: '%@', offset: %lu", |
+ NSStringFromClass([self class]), name, type, offset]; |
+} |
+ |
+- (void)appendToString:(NSMutableString *)resultString typeController:(CDTypeController *)typeController symbolReferences:(CDSymbolReferences *)symbolReferences; |
+{ |
+ NSString *formattedString; |
+ |
+ formattedString = [[typeController ivarTypeFormatter] formatVariable:name type:type symbolReferences:symbolReferences]; |
+ if (formattedString != nil) { |
+ [resultString appendString:formattedString]; |
+ [resultString appendString:@";"]; |
+ if ([typeController shouldShowIvarOffsets]) { |
+ [resultString appendFormat:@"\t// %1$d = 0x%1$x", offset]; |
+ } |
+ } else |
+ [resultString appendFormat:@" // Error parsing type: %@, name: %@", type, name]; |
+} |
+ |
+@end |
Property changes on: class-dump/src/CDOCIvar.m |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |