summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2015-02-03 16:12:50 +0100
committerLionel Elie Mamane <lionel@mamane.lu>2015-02-03 15:21:57 +0000
commit35892dfbbc1779306e11d2ea87c5aaead43356d2 (patch)
tree3641813ae9cb7e0ee1600dc5a6aab91cd33677e6
parentf8cc202803b08f00117d2b8e76a13b76cbf2d6ce (diff)
tdf#89048 Macab initialize record list even for never-match condition.
Change-Id: I323f6532d00f30cde50616e9399cad6bbe00cb8c Reviewed-on: https://gerrit.libreoffice.org/14309 Reviewed-by: Lionel Elie Mamane <lionel@mamane.lu> Tested-by: Lionel Elie Mamane <lionel@mamane.lu>
-rw-r--r--connectivity/source/drivers/macab/MacabResultSet.cxx5
-rw-r--r--connectivity/source/drivers/macab/MacabStatement.cxx2
2 files changed, 6 insertions, 1 deletions
diff --git a/connectivity/source/drivers/macab/MacabResultSet.cxx b/connectivity/source/drivers/macab/MacabResultSet.cxx
index 35a8717254f2..73dd60d57c0a 100644
--- a/connectivity/source/drivers/macab/MacabResultSet.cxx
+++ b/connectivity/source/drivers/macab/MacabResultSet.cxx
@@ -86,6 +86,11 @@ void MacabResultSet::someMacabRecords(const MacabCondition *pCondition)
// maximum alloted size, which means that we'll never have to resize)
m_aMacabRecords = new MacabRecords(allRecords);
+ if(pCondition->isAlwaysFalse())
+ {
+ return;
+ }
+
MacabRecords::iterator iterator;
for (iterator = allRecords->begin();
diff --git a/connectivity/source/drivers/macab/MacabStatement.cxx b/connectivity/source/drivers/macab/MacabStatement.cxx
index 954252fb8b3e..78015335f954 100644
--- a/connectivity/source/drivers/macab/MacabStatement.cxx
+++ b/connectivity/source/drivers/macab/MacabStatement.cxx
@@ -329,7 +329,7 @@ void MacabCommonStatement::selectRecords(MacabResultSet *pResult) const throw(SQ
MacabCondition *pCondition = analyseWhereClause(pParseNode);
if (pCondition->isAlwaysTrue())
pResult->allMacabRecords();
- else if (!pCondition->isAlwaysFalse())
+ else
pResult->someMacabRecords(pCondition);
delete pCondition;
return;