]> git.saurik.com Git - cydia.git/commitdiff
Fixed a stupid bug involving now_ and FirstSeen.
authorJay Freeman (saurik) <saurik@saurk.com>
Fri, 14 Mar 2008 06:44:10 +0000 (06:44 +0000)
committerJay Freeman (saurik) <saurik@saurk.com>
Fri, 14 Mar 2008 06:44:10 +0000 (06:44 +0000)
Cydia.mm

index 0102f347a1a48bbe53cd100b54db90a0dbeedf39..174fdfd49470dca3334811c6fa14fa191132dd77 100644 (file)
--- a/Cydia.mm
+++ b/Cydia.mm
@@ -1200,7 +1200,7 @@ NSString *Scour(const char *field, const char *begin, const char *end) {
         source_ = [[database_ getSource:file_.File()] retain];
 
         NSMutableDictionary *metadata = [Packages_ objectForKey:id_];
-        if (metadata == nil) {
+        if (metadata == nil || [metadata count] == 0) {
             metadata = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                 now_, @"FirstSeen",
             nil];
@@ -1988,6 +1988,8 @@ NSString *Scour(const char *field, const char *begin, const char *end) {
         _assert(cache_.Open(progress_, true));
     }
 
+    now_ = [NSDate date];
+
     records_ = new pkgRecords(cache_);
     resolver_ = new pkgProblemResolver(cache_);
     fetcher_ = new pkgAcquire(&status_);
@@ -3049,11 +3051,19 @@ NSString *Scour(const char *field, const char *begin, const char *end) {
         else {
             NSDate *seen = [package seen];
 
-            CFLocaleRef locale = CFLocaleCopyCurrent();
-            CFDateFormatterRef formatter = CFDateFormatterCreate(NULL, locale, kCFDateFormatterMediumStyle, kCFDateFormatterMediumStyle);
-            CFStringRef formatted = CFDateFormatterCreateStringWithDate(NULL, formatter, (CFDateRef) seen);
-
-            NSString *name = (NSString *) formatted;
+            NSString *name;
+            CFStringRef formatted = NULL;
+
+            if (seen == nil)
+                name = @"n/a ?";
+            else {
+                CFLocaleRef locale = CFLocaleCopyCurrent();
+                CFDateFormatterRef formatter = CFDateFormatterCreate(NULL, locale, kCFDateFormatterMediumStyle, kCFDateFormatterMediumStyle);
+                formatted = CFDateFormatterCreateStringWithDate(NULL, formatter, (CFDateRef) seen);
+                name = (NSString *) formatted;
+                CFRelease(formatter);
+                CFRelease(locale);
+            }
 
             if (section == nil || ![[section name] isEqual:name]) {
                 section = [[[Section alloc] initWithName:name row:offset] autorelease];
@@ -3062,9 +3072,8 @@ NSString *Scour(const char *field, const char *begin, const char *end) {
 
             [section addPackage:package];
 
-            CFRelease(formatter);
-            CFRelease(formatted);
-            CFRelease(locale);
+            if (formatted != NULL)
+                CFRelease(formatted);
         }
     }
 
@@ -3503,8 +3512,6 @@ NSString *Scour(const char *field, const char *begin, const char *end) {
         [Metadata_ setObject:Packages_ forKey:@"Packages"];
     }
 
-    now_ = [NSDate date];
-
     NSArray *packages = [database_ packages];
 
     [install_ setPackages:packages];