diff options
author | Christopher Baines <cbaines8@gmail.com> | 2011-08-09 17:10:09 +0100 |
---|---|---|
committer | Christopher Baines <cbaines8@gmail.com> | 2011-08-09 17:10:09 +0100 |
commit | e7ecc2183ced0503c4f9662339f5ab98dc1606ee (patch) | |
tree | 088d6372fb3fc372f3ed9ce332f7e5ae623a63c0 | |
parent | c7c7d3e8f12e68cd14470eec47db516c9b784cbe (diff) |
More inproved comments about loops.
-rw-r--r-- | apt-pkg/orderlist.cc | 2 | ||||
-rw-r--r-- | apt-pkg/orderlist.h | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc index eaa5ea20a..1e412ead5 100644 --- a/apt-pkg/orderlist.cc +++ b/apt-pkg/orderlist.cc @@ -1023,6 +1023,8 @@ bool pkgOrderList::AddLoop(DepIterator D) // Mark the packages as being part of a loop. //Flag(D.TargetPkg(),Loop); //Flag(D.ParentPkg(),Loop); + /* This is currently disabled because the Loop flag is being used for + loop management in the package manager. Check the orderlist.h file for more info */ return true; } /*}}}*/ diff --git a/apt-pkg/orderlist.h b/apt-pkg/orderlist.h index bbceb3879..2f5c6d0d1 100644 --- a/apt-pkg/orderlist.h +++ b/apt-pkg/orderlist.h @@ -74,7 +74,12 @@ class pkgOrderList : protected pkgCache::Namespace typedef Package **iterator; - // State flags + /* State flags + The Loop flag can be set on a package that is currently being processed by either SmartConfigure or + SmartUnPack. This allows the package manager to tell when a loop has been formed as it will try to + SmartUnPack or SmartConfigure a package with the Loop flag set. It will then either stop (as it knows + that the operation is unnecessary as its already in process), or in the case of the conflicts resolution + in SmartUnPack, use EarlyRemove to resolve the situation. */ enum Flags {Added = (1 << 0), AddPending = (1 << 1), Immediate = (1 << 2), Loop = (1 << 3), UnPacked = (1 << 4), Configured = (1 << 5), @@ -89,6 +94,7 @@ class pkgOrderList : protected pkgCache::Namespace void Flag(PkgIterator Pkg,unsigned long State, unsigned long F) {Flags[Pkg->ID] = (Flags[Pkg->ID] & (~F)) | State;}; inline void Flag(PkgIterator Pkg,unsigned long F) {Flags[Pkg->ID] |= F;}; inline void Flag(Package *Pkg,unsigned long F) {Flags[Pkg->ID] |= F;}; + // IsNow will return true if the Pkg has been not been either configured or unpacked inline bool IsNow(PkgIterator Pkg) {return (Flags[Pkg->ID] & (States & (~Removed))) == 0;}; bool IsMissing(PkgIterator Pkg); void WipeFlags(unsigned long F); |