forked from nygard/class-dump
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCDLCUUID.m
76 lines (61 loc) · 2.18 KB
/
CDLCUUID.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// -*- 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-2011 Steve Nygard.
#import "CDLCUUID.h"
#import "CDMachOFile.h"
@implementation CDLCUUID
- (id)initWithDataCursor:(CDMachOFileDataCursor *)cursor;
{
unsigned int index;
if ((self = [super initWithDataCursor:cursor])) {
uuidCommand.cmd = [cursor readInt32];
uuidCommand.cmdsize = [cursor readInt32];
for (index = 0; index < 16; index++) {
uuidCommand.uuid[index] = [cursor readByte];
}
// Lovely API
uuid = CFUUIDCreateWithBytes(kCFAllocatorDefault,
uuidCommand.uuid[0],
uuidCommand.uuid[1],
uuidCommand.uuid[2],
uuidCommand.uuid[3],
uuidCommand.uuid[4],
uuidCommand.uuid[5],
uuidCommand.uuid[6],
uuidCommand.uuid[7],
uuidCommand.uuid[8],
uuidCommand.uuid[9],
uuidCommand.uuid[10],
uuidCommand.uuid[11],
uuidCommand.uuid[12],
uuidCommand.uuid[13],
uuidCommand.uuid[14],
uuidCommand.uuid[15]);
}
return self;
}
- (void)dealloc;
{
CFRelease(uuid);
[super dealloc];
}
- (uint32_t)cmd;
{
return uuidCommand.cmd;
}
- (uint32_t)cmdsize;
{
return uuidCommand.cmdsize;
}
- (NSString *)uuidString;
{
return [NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, uuid)) autorelease];
}
- (void)appendToString:(NSMutableString *)resultString verbose:(BOOL)isVerbose;
{
[super appendToString:resultString verbose:isVerbose];
[resultString appendString:@" uuid "];
[resultString appendString:[self uuidString]];
[resultString appendString:@"\n"];
}
@end