summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2010-12-06 04:59:36 -0800
committerJay Freeman (saurik) <saurik@saurik.com>2011-01-01 14:32:06 -0800
commit97a3d89e8b16e6f50cf18fb3a84acae78e7ca720 (patch)
tree9c7bc858d353b77db9b171b70c85a42e907f7c99
parentfe33a23ef38f596b2a71ccdf16876cf8d460a68a (diff)
Store Package::role_ as integer instead of NSString.
-rw-r--r--MobileCydia.mm38
1 files changed, 19 insertions, 19 deletions
diff --git a/MobileCydia.mm b/MobileCydia.mm
index 6e2b190..97fa45c 100644
--- a/MobileCydia.mm
+++ b/MobileCydia.mm
@@ -1830,7 +1830,8 @@ struct ParsedPackage {
};
@interface Package : NSObject {
- uint32_t era_ : 29;
+ uint32_t era_ : 26;
+ uint32_t role_ : 3;
uint32_t essential_ : 1;
uint32_t obsolete_ : 1;
uint32_t ignored_ : 1;
@@ -1858,7 +1859,6 @@ struct ParsedPackage {
ParsedPackage *parsed_;
NSMutableArray *tags_;
- NSString *role_;
}
- (Package *) initWithVersion:(pkgCache::VerIterator)version withZone:(NSZone *)zone inPool:(apr_pool_t *)pool database:(Database *)database;
@@ -1920,7 +1920,6 @@ struct ParsedPackage {
- (NSArray *) applications;
- (Source *) source;
-- (NSString *) role;
- (BOOL) matches:(NSString *)text;
@@ -2081,15 +2080,10 @@ struct PackageNameOrdering :
- (void) dealloc {
if (parsed_ != NULL)
delete parsed_;
-
if (source_ != nil)
[source_ release];
-
if (tags_ != nil)
[tags_ release];
- if (role_ != nil)
- [role_ release];
-
[super dealloc];
}
@@ -2223,8 +2217,18 @@ struct PackageNameOrdering :
const char *name(tag.Name());
[tags_ addObject:[(NSString *)CYStringCreate(name) autorelease]];
- if (role_ == nil && strncmp(name, "role::", 6) == 0 /*&& strcmp(name, "role::leaper") != 0*/)
- role_ = (NSString *) CYStringCreate(name + 6);
+ if (role_ == 0 && strncmp(name, "role::", 6) == 0 /*&& strcmp(name, "role::leaper") != 0*/) {
+ if (strcmp(name + 6, "enduser") == 0)
+ role_ = 1;
+ else if (strcmp(name + 6, "hacker") == 0)
+ role_ = 2;
+ else if (strcmp(name + 6, "developer") == 0)
+ role_ = 3;
+ else if (strcmp(name + 6, "cydia") == 0)
+ role_ = 7;
+ else
+ role_ = 4;
+ }
if (strncmp(name, "cydia::", 7) == 0) {
if (strcmp(name + 7, "essential") == 0)
@@ -2717,10 +2721,6 @@ struct PackageNameOrdering :
return source_ == (Source *) [NSNull null] ? nil : source_;
}
-- (NSString *) role {
- return role_;
-}
-
- (BOOL) matches:(NSString *)text {
if (text == nil)
return NO;
@@ -2743,17 +2743,17 @@ struct PackageNameOrdering :
}
- (bool) hasSupportingRole {
- if (role_ == nil)
+ if (role_ == 0)
return true;
- if ([role_ isEqualToString:@"enduser"])
+ if (role_ == 1)
return true;
if ([Role_ isEqualToString:@"User"])
return false;
- if ([role_ isEqualToString:@"hacker"])
+ if (role_ == 2)
return true;
if ([Role_ isEqualToString:@"Hacker"])
return false;
- if ([role_ isEqualToString:@"developer"])
+ if (role_ == 3)
return true;
if ([Role_ isEqualToString:@"Developer"])
return false;
@@ -2875,7 +2875,7 @@ struct PackageNameOrdering :
}
- (bool) isInstalledAndUnfiltered:(NSNumber *)number {
- return ![self uninstalled] && (![number boolValue] && ![role_ isEqualToString:@"cydia"] || [self unfiltered]);
+ return ![self uninstalled] && (![number boolValue] && role_ != 7 || [self unfiltered]);
}
- (bool) isVisibleInSection:(NSString *)name {