]> git.saurik.com Git - cydia.git/blobdiff - MobileCydia.mm
Remove unused std::hash_map implementation of -[SectionsController reloadData].
[cydia.git] / MobileCydia.mm
index 0208bad3145dd4bd10e6f2f9eca2185a51fe606b..5f2a0ad78403c4ffe00e538c1e02d32afdc35e63 100644 (file)
@@ -118,8 +118,6 @@ extern "C" {
 #include <errno.h>
 #include <pcre.h>
 
 #include <errno.h>
 #include <pcre.h>
 
-#include <ext/hash_map>
-
 #include "UICaboodle/BrowserView.h"
 
 #include "substrate.h"
 #include "UICaboodle/BrowserView.h"
 
 #include "substrate.h"
@@ -1703,13 +1701,11 @@ typedef std::map< unsigned long, _H<Source> > SourceMap;
     pkgCache::VerFileIterator file_;
 
     Source *source_;
     pkgCache::VerFileIterator file_;
 
     Source *source_;
-    bool cached_;
     bool parsed_;
 
     CYString section_;
     _transient NSString *section$_;
     bool essential_;
     bool parsed_;
 
     CYString section_;
     _transient NSString *section$_;
     bool essential_;
-    bool required_;
     bool visible_;
     bool obsolete_;
 
     bool visible_;
     bool obsolete_;
 
@@ -1734,8 +1730,6 @@ typedef std::map< unsigned long, _H<Source> > SourceMap;
     NSMutableArray *tags_;
     NSString *role_;
 
     NSMutableArray *tags_;
     NSString *role_;
 
-    NSArray *relationships_;
-
     NSMutableDictionary *metadata_;
     _transient NSDate *firstSeen_;
     _transient NSDate *lastSeen_;
     NSMutableDictionary *metadata_;
     _transient NSDate *firstSeen_;
     _transient NSDate *lastSeen_;
@@ -1796,7 +1790,6 @@ typedef std::map< unsigned long, _H<Source> > SourceMap;
 - (NSString *) support;
 
 - (NSArray *) files;
 - (NSString *) support;
 
 - (NSArray *) files;
-- (NSArray *) relationships;
 - (NSArray *) warnings;
 - (NSArray *) applications;
 
 - (NSArray *) warnings;
 - (NSArray *) applications;
 
@@ -1980,8 +1973,6 @@ struct PackageNameOrdering :
     if (role_ != nil)
         [role_ release];
 
     if (role_ != nil)
         [role_ release];
 
-    if (relationships_ != nil)
-        [relationships_ release];
     if (metadata_ != nil)
         [metadata_ release];
 
     if (metadata_ != nil)
         [metadata_ release];
 
@@ -2076,7 +2067,7 @@ struct PackageNameOrdering :
 }
 
 - (void) setVisible {
 }
 
 - (void) setVisible {
-    visible_ = required_ && [self unfiltered];
+    visible_ = [self unfiltered];
 }
 
 - (Package *) initWithVersion:(pkgCache::VerIterator)version withZone:(NSZone *)zone inPool:(apr_pool_t *)pool database:(Database *)database {
 }
 
 - (Package *) initWithVersion:(pkgCache::VerIterator)version withZone:(NSZone *)zone inPool:(apr_pool_t *)pool database:(Database *)database {
@@ -2124,17 +2115,6 @@ struct PackageNameOrdering :
                 data[i] |= 0x20;
         _end
 
                 data[i] |= 0x20;
         _end
 
-        if (!file_.end()) {
-            _profile(Package$initWithVersion$Source)
-                source_ = [database_ getSource:file_.File()];
-                if (source_ != nil)
-                    [source_ retain];
-                cached_ = true;
-            _end
-        }
-
-        required_ = true;
-
         _profile(Package$initWithVersion$Tags)
             pkgCache::TagIterator tag(iterator_.TagList());
             if (!tag.end()) {
         _profile(Package$initWithVersion$Tags)
             pkgCache::TagIterator tag(iterator_.TagList());
             if (!tag.end()) {
@@ -2144,10 +2124,6 @@ struct PackageNameOrdering :
                     [tags_ addObject:[(NSString *)CYStringCreate(name) autorelease]];
                     if (role_ == nil && strncmp(name, "role::", 6) == 0 /*&& strcmp(name, "role::leaper") != 0*/)
                         role_ = (NSString *) CYStringCreate(name + 6);
                     [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 (required_ && strncmp(name, "require::", 9) == 0 && (
-                        true
-                    ))
-                        required_ = false;
                     ++tag;
                 } while (!tag.end());
             }
                     ++tag;
                 } while (!tag.end());
             }
@@ -2543,10 +2519,6 @@ struct PackageNameOrdering :
     return files;
 }
 
     return files;
 }
 
-- (NSArray *) relationships {
-    return relationships_;
-}
-
 - (NSArray *) warnings {
     NSMutableArray *warnings([NSMutableArray arrayWithCapacity:4]);
     const char *name(iterator_.Name());
 - (NSArray *) warnings {
     NSMutableArray *warnings([NSMutableArray arrayWithCapacity:4]);
     const char *name(iterator_.Name());
@@ -2632,21 +2604,16 @@ struct PackageNameOrdering :
 }
 
 - (Source *) source {
 }
 
 - (Source *) source {
-    if (!cached_) {
+    if (source_ == nil) {
         @synchronized (database_) {
             if ([database_ era] != era_ || file_.end())
         @synchronized (database_) {
             if ([database_ era] != era_ || file_.end())
-                source_ = nil;
-            else {
-                source_ = [database_ getSource:file_.File()];
-                if (source_ != nil)
-                    [source_ retain];
-            }
-
-            cached_ = true;
+                source_ = (Source *) [NSNull null];
+            else
+                source_ = [([database_ getSource:file_.File()] ?: (Source *) [NSNull null]) retain];
         }
     }
 
         }
     }
 
-    return source_;
+    return source_ == (Source *) [NSNull null] ? nil : source_;
 }
 
 - (NSString *) role {
 }
 
 - (NSString *) role {
@@ -2757,29 +2724,41 @@ struct PackageNameOrdering :
 }
 
 - (void) clear {
 }
 
 - (void) clear {
+@synchronized (database_) {
     pkgProblemResolver *resolver = [database_ resolver];
     resolver->Clear(iterator_);
     pkgProblemResolver *resolver = [database_ resolver];
     resolver->Clear(iterator_);
-    resolver->Protect(iterator_);
-}
+
+    pkgCacheFile &cache([database_ cache]);
+    cache->SetReInstall(iterator_, false);
+    cache->MarkKeep(iterator_, false);
+} }
 
 - (void) install {
 
 - (void) install {
+@synchronized (database_) {
     pkgProblemResolver *resolver = [database_ resolver];
     resolver->Clear(iterator_);
     resolver->Protect(iterator_);
     pkgProblemResolver *resolver = [database_ resolver];
     resolver->Clear(iterator_);
     resolver->Protect(iterator_);
+
     pkgCacheFile &cache([database_ cache]);
     pkgCacheFile &cache([database_ cache]);
+    cache->SetReInstall(iterator_, false);
     cache->MarkInstall(iterator_, false);
     cache->MarkInstall(iterator_, false);
+
     pkgDepCache::StateCache &state((*cache)[iterator_]);
     if (!state.Install())
         cache->SetReInstall(iterator_, true);
     pkgDepCache::StateCache &state((*cache)[iterator_]);
     if (!state.Install())
         cache->SetReInstall(iterator_, true);
-}
+} }
 
 - (void) remove {
 
 - (void) remove {
+@synchronized (database_) {
     pkgProblemResolver *resolver = [database_ resolver];
     resolver->Clear(iterator_);
     pkgProblemResolver *resolver = [database_ resolver];
     resolver->Clear(iterator_);
-    resolver->Protect(iterator_);
     resolver->Remove(iterator_);
     resolver->Remove(iterator_);
-    [database_ cache]->MarkDelete(iterator_, true);
-}
+    resolver->Protect(iterator_);
+
+    pkgCacheFile &cache([database_ cache]);
+    cache->SetReInstall(iterator_, false);
+    cache->MarkDelete(iterator_, true);
+} }
 
 - (bool) isUnfilteredAndSearchedForBy:(NSString *)search {
     _profile(Package$isUnfilteredAndSearchedForBy)
 
 - (bool) isUnfilteredAndSearchedForBy:(NSString *)search {
     _profile(Package$isUnfilteredAndSearchedForBy)
@@ -3418,6 +3397,19 @@ static NSString *Warning_;
     }
 } } CYPoolEnd() _trace(); }
 
     }
 } } CYPoolEnd() _trace(); }
 
+- (void) clear {
+@synchronized (self) {
+    delete resolver_;
+    resolver_ = new pkgProblemResolver(cache_);
+
+    for (pkgCache::PkgIterator iterator(cache_->PkgBegin()); !iterator.end(); ++iterator) {
+        if (!cache_[iterator].Keep()) {
+            cache_->MarkKeep(iterator, false);
+            cache_->SetReInstall(iterator, false);
+        }
+    }
+} }
+
 - (void) configure {
     NSString *dpkg = [NSString stringWithFormat:@"dpkg --configure -a --status-fd %u", statusfd_];
     system([dpkg UTF8String]);
 - (void) configure {
     NSString *dpkg = [NSString stringWithFormat:@"dpkg --configure -a --status-fd %u", statusfd_];
     system([dpkg UTF8String]);
@@ -5298,6 +5290,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
         target:self
         action:@selector(customButtonClicked)
     ];
         target:self
         action:@selector(customButtonClicked)
     ];
+
+    [self reloadURL];
 }
 
 - (bool) isLoading {
 }
 
 - (bool) isLoading {
@@ -6832,40 +6826,13 @@ freeing the view controllers on tab change */
     [sections_ removeAllObjects];
     [filtered_ removeAllObjects];
 
     [sections_ removeAllObjects];
     [filtered_ removeAllObjects];
 
-#if 0
-    typedef __gnu_cxx::hash_map<NSString *, Section *, NSStringMapHash, NSStringMapEqual> SectionMap;
-    SectionMap sections;
-    sections.resize(64);
-#else
     NSMutableDictionary *sections([NSMutableDictionary dictionaryWithCapacity:32]);
     NSMutableDictionary *sections([NSMutableDictionary dictionaryWithCapacity:32]);
-#endif
 
     _trace();
     for (Package *package in packages) {
         NSString *name([package section]);
         NSString *key(name == nil ? @"" : name);
 
 
     _trace();
     for (Package *package in packages) {
         NSString *name([package section]);
         NSString *key(name == nil ? @"" : name);
 
-#if 0
-        Section **section;
-
-        _profile(SectionsView$reloadData$Section)
-            section = &sections[key];
-            if (*section == nil) {
-                _profile(SectionsView$reloadData$Section$Allocate)
-                    *section = [[[Section alloc] initWithName:name localize:YES] autorelease];
-                _end
-            }
-        _end
-
-        [*section addToCount];
-
-        _profile(SectionsView$reloadData$Filter)
-            if (![package valid] || ![package visible])
-                continue;
-        _end
-
-        [*section addToRow];
-#else
         Section *section;
 
         _profile(SectionsView$reloadData$Section)
         Section *section;
 
         _profile(SectionsView$reloadData$Section)
@@ -6886,16 +6853,10 @@ freeing the view controllers on tab change */
         _end
 
         [section addToRow];
         _end
 
         [section addToRow];
-#endif
     }
     _trace();
 
     }
     _trace();
 
-#if 0
-    for (SectionMap::const_iterator i(sections.begin()), e(sections.end()); i != e; ++i)
-        [sections_ addObject:i->second];
-#else
     [sections_ addObjectsFromArray:[sections allValues]];
     [sections_ addObjectsFromArray:[sections allValues]];
-#endif
 
     [sections_ sortUsingSelector:@selector(compareByLocalized:)];
 
 
     [sections_ sortUsingSelector:@selector(compareByLocalized:)];
 
@@ -8459,16 +8420,7 @@ static _finline void _setHomePage(Cydia *self) {
 - (void) cancelAndClear:(bool)clear {
     @synchronized (self) {
         if (clear) {
 - (void) cancelAndClear:(bool)clear {
     @synchronized (self) {
         if (clear) {
-            // Clear all marks.
-            pkgCacheFile &cache([database_ cache]);
-            for (pkgCache::PkgIterator iterator = cache->PkgBegin(); !iterator.end(); ++iterator) {
-                // Unmark method taken from Synaptic Package Manager.
-                // Thanks for being sane, unlike Aptitude.
-                if (!cache[iterator].Keep()) {
-                    cache->MarkKeep(iterator, false);
-                    cache->SetReInstall(iterator, false);
-                }
-            }
+            [database_ clear];
 
             // Stop queuing.
             Queuing_ = false;
 
             // Stop queuing.
             Queuing_ = false;
@@ -8479,8 +8431,7 @@ static _finline void _setHomePage(Cydia *self) {
             [[[self queueBadgeController] tabBarItem] setBadgeValue:UCLocalize("Q_D")];
         }
 
             [[[self queueBadgeController] tabBarItem] setBadgeValue:UCLocalize("Q_D")];
         }
 
-        // Show the changes in the current view.
-        [(CYNavigationController *) [tabbar_ selectedViewController] reloadData];
+        [self _updateData];
         [queueDelegate_ queueStatusDidChange];
     }
 }
         [queueDelegate_ queueStatusDidChange];
     }
 }