From 09109f3dcde24fcd13426ce5b77bb40032f58947 Mon Sep 17 00:00:00 2001 From: Lionel Elie Mamane Date: Wed, 23 Jan 2013 15:20:24 +0100 Subject: [PATCH] OSQLParser::RuleIDToRule should not silently change s_aReverseRuleIDLookup Change-Id: I2b408a23162b1200bbcd530be7acb42435388b04 --- connectivity/source/parse/sqlbison.y | 13 ++++++++++++- sal/inc/sal/log-areas.dox | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y index 96d078291d5f..a0f7d43fe9af 100644 --- a/connectivity/source/parse/sqlbison.y +++ b/connectivity/source/parse/sqlbison.y @@ -4772,7 +4772,18 @@ sal_uInt32 OSQLParser::StrToRuleID(const ::rtl::OString & rValue) //----------------------------------------------------------------------------- OSQLParseNode::Rule OSQLParser::RuleIDToRule( sal_uInt32 _nRule ) { - return s_aReverseRuleIDLookup[ _nRule ]; + OSQLParser::RuleIDMap::const_iterator i (s_aReverseRuleIDLookup.find(_nRule)); + if (i == s_aReverseRuleIDLookup.end()) + { + SAL_WARN("connectivity.parse", + "connectivity::OSQLParser::RuleIDToRule cannot reverse-lookup rule. " + "Reverse mapping incomplete? " + "_nRule='" << _nRule << "' " + "yytname[_nRule]='" << yytname[_nRule] << "'"); + return OSQLParseNode::UNKNOWN_RULE; + } + else + return i->second; } //----------------------------------------------------------------------------- diff --git a/sal/inc/sal/log-areas.dox b/sal/inc/sal/log-areas.dox index 5232778642b4..eeb1d6035b1e 100644 --- a/sal/inc/sal/log-areas.dox +++ b/sal/inc/sal/log-areas.dox @@ -37,6 +37,7 @@ certain functionality. @section connectivity @li @c connectivity.mork +@li @c connectivity.parse @section cui