forked from qt-creator/qt-creator
Change asserts() to soft-asserts in Vcs-Cache.
- Prevent crash when creating a project. - Use QDir to normalize the path (as it is constrcuted in the assert anyway). - Print proper warnings. Change-Id: Ib6fa3c564aff20b73d6efc08ca3a13688fd97dce Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -110,12 +110,13 @@ public:
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void resetCache(const QString &dir)
|
void resetCache(const QString &dirIn)
|
||||||
{
|
{
|
||||||
Q_ASSERT(QDir(dir).isAbsolute());
|
const QDir qDir = QDir(dirIn);
|
||||||
Q_ASSERT(!dir.endsWith(QLatin1Char('/')));
|
QTC_ASSERT(qDir.exists(), qWarning("%s: '%s' does not exist.",
|
||||||
Q_ASSERT(QDir::fromNativeSeparators(dir) == dir);
|
Q_FUNC_INFO, qPrintable(dirIn));
|
||||||
|
return; )
|
||||||
|
const QString dir = qDir.absolutePath();
|
||||||
const QString dirSlash = dir + QLatin1Char('/');
|
const QString dirSlash = dir + QLatin1Char('/');
|
||||||
foreach (const QString &key, m_cachedMatches.keys()) {
|
foreach (const QString &key, m_cachedMatches.keys()) {
|
||||||
if (key == dir || key.startsWith(dirSlash))
|
if (key == dir || key.startsWith(dirSlash))
|
||||||
@@ -123,13 +124,16 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cache(IVersionControl *vc, const QString topLevel, const QString dir)
|
void cache(IVersionControl *vc, const QString &topLevel, const QString &dirIn)
|
||||||
{
|
{
|
||||||
Q_ASSERT(QDir(dir).isAbsolute());
|
const QDir qDir(dirIn);
|
||||||
Q_ASSERT(!dir.endsWith(QLatin1Char('/')));
|
QTC_ASSERT(qDir.exists(), qWarning("%s: '%s' does not exist.",
|
||||||
Q_ASSERT(QDir::fromNativeSeparators(dir) == dir);
|
Q_FUNC_INFO, qPrintable(dirIn));
|
||||||
Q_ASSERT(dir.startsWith(topLevel));
|
return; )
|
||||||
|
const QString dir = qDir.absolutePath();
|
||||||
|
QTC_ASSERT(dir.startsWith(topLevel), qWarning("%s: '%s' does not start with '%s'.",
|
||||||
|
Q_FUNC_INFO, qPrintable(dir), qPrintable(topLevel));
|
||||||
|
return; )
|
||||||
VcsInfo *newInfo = new VcsInfo(vc, topLevel);
|
VcsInfo *newInfo = new VcsInfo(vc, topLevel);
|
||||||
bool createdNewInfo(true);
|
bool createdNewInfo(true);
|
||||||
// Do we have a matching VcsInfo already?
|
// Do we have a matching VcsInfo already?
|
||||||
|
|||||||
Reference in New Issue
Block a user