8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 04:43:03 +01:00
This commit is contained in:
asfernandes 2011-06-08 01:55:13 +00:00
parent e6329b0663
commit add3d8ddef
3 changed files with 15 additions and 14 deletions

View File

@ -197,12 +197,12 @@ void DPM_backout_mark(thread_db* tdbb, record_param* rpb, const jrd_tra* transac
Database* dbb = tdbb->getDatabase();
CHECK_DBB(dbb);
WIN *window = &rpb->getWindow(tdbb);
WIN* window = &rpb->getWindow(tdbb);
CCH_MARK(tdbb, window);
data_page* page = (data_page*) window->win_buffer;
data_page::dpg_repeat* index = page->dpg_rpt + rpb->rpb_line;
rhd* header = (rhd*) ((SCHAR *) page + index->dpg_offset);
rhd* header = (rhd*) ((SCHAR*) page + index->dpg_offset);
header->rhd_flags |= rhd_gc_active;
header->rhd_transaction = transaction->tra_number;

View File

@ -434,9 +434,7 @@ void VIO_backout(thread_db* tdbb, record_param* rpb, const jrd_tra* transaction)
IDX_garbage_collect(tdbb, rpb, going, staying);
if (going.hasData())
{
going.pop();
}
clearRecordStack(staying);
@ -447,9 +445,9 @@ void VIO_backout(thread_db* tdbb, record_param* rpb, const jrd_tra* transaction)
if (samePage)
{
DPM_backout(tdbb, rpb);
if (!deleted) {
if (!deleted)
delete_tail(tdbb, &temp2, rpb->rpb_page, 0, 0);
}
}
else
{
@ -467,9 +465,7 @@ void VIO_backout(thread_db* tdbb, record_param* rpb, const jrd_tra* transaction)
rpb->rpb_format_number = temp.rpb_format_number;
if (deleted)
{
replace_record(tdbb, rpb, 0, transaction);
}
else
{
// There is cleanup to be done. Bring the old version forward first
@ -4677,22 +4673,25 @@ static void list_staying(thread_db* tdbb, record_param* rpb, RecordStack& stayin
// VIO_data below could change the flags
const bool backout = (temp.rpb_flags & rpb_gc_active);
VIO_data(tdbb, &temp, tdbb->getDefaultPool());
if (!backout)
{
if (!backout)
staying.push(temp.rpb_record);
}
else
else
{
fb_assert(!backout_rec);
backout_rec = temp.rpb_record;
}
data = temp.rpb_record;
}
max_depth = depth;
if (!next_page)
break;
}
else {
else
{
CCH_RELEASE(tdbb, &temp.getWindow(tdbb));
break;
}
@ -4709,6 +4708,7 @@ static void list_staying(thread_db* tdbb, record_param* rpb, RecordStack& stayin
delete staying.pop();
}
}
delete backout_rec;
}

View File

@ -5810,7 +5810,8 @@ static void init(IStatus* status,
LocalStatus s;
GetPlugins<Auth::IClient> authItr(PluginType::AuthClient, FB_AUTH_CLIENT_VERSION);
bool working = true;
bool working = true;
while (working && authItr.hasData())
{
if (port->port_protocol >= PROTOCOL_VERSION13 ||