pass a pointer instead of a reference to initFrom()

msvc thinks that it's impossible to create a null reference (because
some language lawyer said so) and thus complains about our assert that
checks the reference's validity. work around by not dereferencing the
pointers we already have.

Change-Id: Ife2288d4187860105de12fdebc0e671e0159ace3
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
(cherry picked from qtbase/11161bbfadd0056466fc414ed659d08a4a0fe492)
This commit is contained in:
Oswald Buddenhagen
2014-06-16 14:31:30 +02:00
parent a791e851a7
commit 21e52edbfc
2 changed files with 11 additions and 11 deletions

View File

@@ -196,17 +196,17 @@ QMakeEvaluator::~QMakeEvaluator()
{ {
} }
void QMakeEvaluator::initFrom(const QMakeEvaluator &other) void QMakeEvaluator::initFrom(const QMakeEvaluator *other)
{ {
Q_ASSERT_X(&other, "QMakeEvaluator::visitProFile", "Project not prepared"); Q_ASSERT_X(other, "QMakeEvaluator::visitProFile", "Project not prepared");
m_functionDefs = other.m_functionDefs; m_functionDefs = other->m_functionDefs;
m_valuemapStack = other.m_valuemapStack; m_valuemapStack = other->m_valuemapStack;
m_valuemapInited = true; m_valuemapInited = true;
m_qmakespec = other.m_qmakespec; m_qmakespec = other->m_qmakespec;
m_qmakespecName = other.m_qmakespecName; m_qmakespecName = other->m_qmakespecName;
m_mkspecPaths = other.m_mkspecPaths; m_mkspecPaths = other->m_mkspecPaths;
m_featureRoots = other.m_featureRoots; m_featureRoots = other->m_featureRoots;
m_dirSep = other.m_dirSep; m_dirSep = other->m_dirSep;
} }
//////// Evaluator tools ///////// //////// Evaluator tools /////////
@@ -1354,7 +1354,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile(
return ReturnFalse; return ReturnFalse;
#endif #endif
initFrom(*baseEnv->evaluator); initFrom(baseEnv->evaluator);
} else { } else {
if (!m_valuemapInited) if (!m_valuemapInited)
loadDefaults(); loadDefaults();

View File

@@ -155,7 +155,7 @@ public:
bool prepareProject(const QString &inDir); bool prepareProject(const QString &inDir);
bool loadSpecInternal(); bool loadSpecInternal();
bool loadSpec(); bool loadSpec();
void initFrom(const QMakeEvaluator &other); void initFrom(const QMakeEvaluator *other);
void setupProject(); void setupProject();
void evaluateCommand(const QString &cmds, const QString &where); void evaluateCommand(const QString &cmds, const QString &where);
void applyExtraConfigs(); void applyExtraConfigs();