diff options
| author | Tannin <devnull@localhost> | 2013-05-25 12:24:48 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2013-05-25 12:24:48 +0200 |
| commit | 16bda49e0667f77f4ebe1d8fa2682abf57aa6765 (patch) | |
| tree | 457f8dea0e452b194dca9bd0e30a6891700376ad /src/shared | |
| parent | daf8bab1367334bb7f2332d4256f31c9db5ecec8 (diff) | |
- bugfix: mod priority ordering could become incorrect
- bugfix: when grouping is enabled, newly installed mods broke grouping
- bugfix: syncing overwrite didn't clean up emptied directory
Diffstat (limited to 'src/shared')
| -rw-r--r-- | src/shared/directoryentry.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp index abf9affb..9958b934 100644 --- a/src/shared/directoryentry.cpp +++ b/src/shared/directoryentry.cpp @@ -192,7 +192,6 @@ void FileEntry::addOrigin(int origin, FILETIME fileTime, const std::wstring &arc m_Origin = origin;
m_FileTime = fileTime;
m_Archive = archive;
-// } else if (FilesOrigin::getByID(origin).getPriority() > FilesOrigin::getByID(m_Origin).getPriority()) {
} else if (m_Parent->getOriginByID(origin).getPriority() > m_Parent->getOriginByID(m_Origin).getPriority()) {
if (std::find(m_Alternatives.begin(), m_Alternatives.end(), m_Origin) == m_Alternatives.end()) {
m_Alternatives.push_back(m_Origin);
@@ -269,7 +268,10 @@ bool FileEntry::removeOrigin(int origin) // sorted by priority descending
static bool ByOriginPriority(DirectoryEntry *entry, int LHS, int RHS)
{
- return entry->getOriginByID(LHS).getPriority() < entry->getOriginByID(RHS).getPriority();
+ int l = entry->getOriginByID(LHS).getPriority(); if (l < 0) l = INT_MAX;
+ int r = entry->getOriginByID(RHS).getPriority(); if (r < 0) r = INT_MAX;
+
+ return l < r;
}
|
