handle case where mork is writing out an incremental change, and it's a remove row, and the row isn't in any table, but has dirty cells, 371672, sr=mscott

git-svn-id: svn://10.0.0.236/trunk@221075 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bienvenu%nventure.com 2007-02-28 17:04:22 +00:00
parent 444fe9e310
commit 7192b40e5e

View File

@ -1457,6 +1457,19 @@ morkWriter::PutTableDict(morkEnv* ev, morkTable* ioTable)
r->NonRowTypeError(ev);
}
}
// we may have a change for a row which is no longer in the
// table, but contains a cell with something not in the dictionary.
// So, loop through the rows in the change log, writing out any
// dirty dictionary elements.
morkList* list = &ioTable->mTable_ChangeList;
morkNext* next = list->GetListHead();
while ( next && ev->Good() )
{
r = ((morkTableChange*) next)->mTableChange_Row;
if ( r && r->IsRow() )
this->PutRowDict(ev, r);
next = next->GetNextLink();
}
}
if ( ev->Good() )
this->EndDict(ev);