8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 22:43:04 +01:00
This commit is contained in:
robocop 2008-04-26 14:35:12 +00:00
parent b23d31fbd8
commit 53bf05282d
2 changed files with 7 additions and 10 deletions

View File

@ -427,7 +427,7 @@ bool IntlManager::initialize()
const Element* module = el->findChild("intl_module"); const Element* module = el->findChild("intl_module");
if (module) if (module)
{ {
Firebird::string moduleName(module->getAttributeName(0)); const Firebird::string moduleName(module->getAttributeName(0));
ConfObj objModule(configFile.findObject("intl_module", moduleName.c_str())); ConfObj objModule(configFile.findObject("intl_module", moduleName.c_str()));
filename = objModule->getValue("filename", ""); filename = objModule->getValue("filename", "");
configInfo = getConfigInfo(objModule); configInfo = getConfigInfo(objModule);

View File

@ -900,7 +900,7 @@ void CCH_fetch_page(
Database* dbb = tdbb->getDatabase(); Database* dbb = tdbb->getDatabase();
BufferDesc* bdb = window->win_bdb; BufferDesc* bdb = window->win_bdb;
ISC_STATUS* status = tdbb->tdbb_status_vector; ISC_STATUS* const status = tdbb->tdbb_status_vector;
pag* page = bdb->bdb_buffer; pag* page = bdb->bdb_buffer;
bdb->bdb_incarnation = ++dbb->dbb_page_incarnation; bdb->bdb_incarnation = ++dbb->dbb_page_incarnation;
@ -1005,8 +1005,7 @@ void CCH_fetch_page(
} }
else { else {
if (retryCount++ == 3) { if (retryCount++ == 3) {
fprintf(stderr, fprintf(stderr, "IO error loop Unwind to avoid a hang\n");
"IO error loop Unwind to avoid a hang\n");
PAGE_LOCK_RELEASE(bdb->bdb_lock); PAGE_LOCK_RELEASE(bdb->bdb_lock);
CCH_unwind(tdbb, true); CCH_unwind(tdbb, true);
} }
@ -1017,14 +1016,12 @@ void CCH_fetch_page(
} // scope } // scope
#ifndef NO_CHECKSUM #ifndef NO_CHECKSUM
if (((compute_checksum == 1) if ((compute_checksum == 1 || (compute_checksum == 2 && page->pag_type)) &&
|| ((compute_checksum == 2) && page->pag_type)) page->pag_checksum != CCH_checksum(bdb) && !(dbb->dbb_flags & DBB_damaged))
&& ((page->pag_checksum != CCH_checksum(bdb))
&& !(dbb->dbb_flags & DBB_damaged)))
{ {
IBERR_build_status(tdbb->tdbb_status_vector, IBERR_build_status(status,
isc_db_corrupt, isc_db_corrupt,
isc_arg_string, "", isc_arg_string, "", // why isn't the db name used here?
isc_arg_gds, isc_bad_checksum, isc_arg_gds, isc_bad_checksum,
isc_arg_gds, isc_badpage, isc_arg_gds, isc_badpage,
isc_arg_number, (SLONG) bdb->bdb_page.getPageNum(), 0); isc_arg_number, (SLONG) bdb->bdb_page.getPageNum(), 0);