From: Kevin Lewis Date: January 7 2009 6:14am Subject: bzr commit into mysql-6.0-falcon-team branch (klewis:2956) Bug#41835 List-Archive: http://lists.mysql.com/commits/62565 X-Bug: 41835 Message-Id: <200901070614.n076Eipe009039@mail.mysql.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///C:/Work/bzr/Merge/mysql-6.0-falcon-team/ 2956 Kevin Lewis 2009-01-07 Bug#41835 - Table::getSyncPrior() was called with a null record pointer because Table::checkAncestor() was called immediately after Table::fetch(), which can return a null. modified: storage/falcon/Table.cpp per-file messages: storage/falcon/Table.cpp Bug#41835 - Table::getSyncPrior() was called with a null record pointer because Table::checkAncestor() was called immediately after Table::fetch(), which can return a null. === modified file 'storage/falcon/Table.cpp' --- a/storage/falcon/Table.cpp 2008-12-16 20:40:38 +0000 +++ b/storage/falcon/Table.cpp 2009-01-07 06:14:34 +0000 @@ -1488,13 +1488,13 @@ void Table::deleteRecord(Transaction * t // syncPrior is not needed here. It is handled in fetchVersion() Record *candidate = fetch(orgRecord->recordNumber); + if (!candidate) + return; + checkAncestor(candidate, orgRecord); RecordVersion *record; bool wasLock = false; - if (!candidate) - return; - if (candidate->state == recLock && candidate->getTransaction() == transaction) { if (candidate->getSavePointId() == transaction->curSavePointId) @@ -3094,13 +3094,12 @@ void Table::update(Transaction * transac database->preUpdate(); Record *candidate = fetch(orgRecord->recordNumber); - checkAncestor(candidate, orgRecord); - if (!candidate) return; + checkAncestor(candidate, orgRecord); Record *oldRecord = candidate; - + if (candidate->getTransaction() == transaction) { if (candidate->state == recLock)