Kaydet (Commit) 58d24271 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Assuming the double iteration is a copy/paste snafu

...causes "error: attempt to increment a past-the-end iterator." with debug-mode
libstdc++.

Change-Id: I89af3944b04ad6ab4ef3561d2aa91b5bab1edf20
üst 0423a674
...@@ -241,40 +241,37 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection) ...@@ -241,40 +241,37 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection)
MorkRowMap *Rows = 0; MorkRowMap *Rows = 0;
MorkRowMap::iterator rowIter; MorkRowMap::iterator rowIter;
// Iterate all tables
for ( tableIter = Tables->begin(); tableIter != Tables->end(); tableIter++ ) for ( tableIter = Tables->begin(); tableIter != Tables->end(); tableIter++ )
{ {
// Iterate all tables if (tableIter->first != 1) break;
for ( tableIter = Tables->begin(); tableIter != Tables->end(); tableIter++ ) Rows = xConnection->getMorkParser()->getRows( 0x80, &tableIter->second );
if ( Rows )
{ {
if (tableIter->first != 1) break; // Iterate all rows
Rows = xConnection->getMorkParser()->getRows( 0x80, &tableIter->second ); for ( rowIter = Rows->begin(); rowIter != Rows->end(); rowIter++ )
if ( Rows )
{ {
// Iterate all rows MQueryHelperResultEntry* entry = new MQueryHelperResultEntry();
for ( rowIter = Rows->begin(); rowIter != Rows->end(); rowIter++ ) for (MorkCells::iterator CellsIter = rowIter->second.begin();
CellsIter != rowIter->second.end(); CellsIter++ )
{ {
MQueryHelperResultEntry* entry = new MQueryHelperResultEntry(); std::string column = xConnection->getMorkParser()->getColumn(CellsIter->first);
for (MorkCells::iterator CellsIter = rowIter->second.begin(); std::string value = xConnection->getMorkParser()->getValue(CellsIter->second);
CellsIter != rowIter->second.end(); CellsIter++ )
{ //SAL_INFO("connectivity.mork", "key: " << column << " value: " << value);
std::string column = xConnection->getMorkParser()->getColumn(CellsIter->first);
std::string value = xConnection->getMorkParser()->getValue(CellsIter->second); OString key(column.c_str(), static_cast<sal_Int32>(column.size()));
OString valueOString(value.c_str(), static_cast<sal_Int32>(value.size()));
//SAL_INFO("connectivity.mork", "key: " << column << " value: " << value); rtl::OUString valueOUString = ::rtl::OStringToOUString( valueOString, RTL_TEXTENCODING_UTF8 );
entry->setValue(key, valueOUString);
OString key(column.c_str(), static_cast<sal_Int32>(column.size())); }
OString valueOString(value.c_str(), static_cast<sal_Int32>(value.size())); ::std::vector< sal_Bool > vector = entryMatchedByExpression(this, &m_aExpr, entry);
rtl::OUString valueOUString = ::rtl::OStringToOUString( valueOString, RTL_TEXTENCODING_UTF8 ); sal_Bool result = sal_True;
entry->setValue(key, valueOUString); for (::std::vector<sal_Bool>::iterator iter = vector.begin(); iter != vector.end(); ++iter) {
} result = result && *iter;
::std::vector< sal_Bool > vector = entryMatchedByExpression(this, &m_aExpr, entry); }
sal_Bool result = sal_True; if (result) {
for (::std::vector<sal_Bool>::iterator iter = vector.begin(); iter != vector.end(); ++iter) { append(entry);
result = result && *iter;
}
if (result) {
append(entry);
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment