8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 22:03:03 +01:00

I had to be explicit to overcome the dreaded "internal compiler error". Greetings to William Gates III.

This commit is contained in:
robocop 2007-02-02 10:51:31 +00:00
parent fd6e38b0e6
commit 3442fef412
2 changed files with 21 additions and 17 deletions

View File

@ -316,14 +316,14 @@ namespace YValve
db_path(*getDefaultMemoryPool()), db_path(*getDefaultMemoryPool()),
db_prepare_buffer(*getDefaultMemoryPool()) db_prepare_buffer(*getDefaultMemoryPool())
{ {
toParent(attachments(), this); toParent<Attachment>(attachments(), this);
parent = this; parent = this;
} }
Attachment::~Attachment() Attachment::~Attachment()
{ {
cleanup.call(&public_handle); cleanup.call(&public_handle);
fromParent(attachments(), this); fromParent<Attachment>(attachments(), this);
} }
} }
@ -479,7 +479,7 @@ namespace
#ifndef SERVER_SHUTDOWN // appears this macro has now nothing with shutdown #ifndef SERVER_SHUTDOWN // appears this macro has now nothing with shutdown
int totalAttachmentCount() int totalAttachmentCount() const
{ {
return attachments().getCount(); return attachments().getCount();
} }
@ -669,7 +669,7 @@ namespace
} }
} }
bool fatal() bool fatal() const
{ {
return vector[0] == isc_arg_gds && return vector[0] == isc_arg_gds &&
(vector[1] == isc_shutdown || (vector[1] == isc_shutdown ||
@ -4967,7 +4967,8 @@ ISC_STATUS API_ROUTINE GDS_START_MULTIPLE(ISC_STATUS * user_status,
Transaction** ptr; Transaction** ptr;
USHORT n; USHORT n;
for (n = 0, ptr = &transaction; n < count; for (n = 0, ptr = &transaction; n < count;
n++, ptr = &(*ptr)->next, vector++) { n++, ptr = &(*ptr)->next, vector++)
{
dbb = translate<Attachment>(vector->teb_database); dbb = translate<Attachment>(vector->teb_database);
if (CALL(PROC_START_TRANSACTION, dbb->implementation) (status, if (CALL(PROC_START_TRANSACTION, dbb->implementation) (status,
@ -5684,9 +5685,13 @@ static ISC_STATUS get_transaction_info(ISC_STATUS* user_status,
const TEXT* q = buffer + 3; const TEXT* q = buffer + 3;
*p++ = TDR_TRANSACTION_ID; *p++ = TDR_TRANSACTION_ID;
const USHORT length = USHORT length = (USHORT)gds__vax_integer(reinterpret_cast<UCHAR*>(buffer + 1), 2);
(USHORT)gds__vax_integer(reinterpret_cast<UCHAR*>(buffer + 1), 2);
*p++ = length; // Warning: USHORT coerced to char // Prevent information out of sync.
if (length > MAX_UCHAR)
length = MAX_UCHAR;
*p++ = length;
memcpy(p, q, length); memcpy(p, q, length);
*ptr = p + length; *ptr = p + length;
} }

View File

@ -245,14 +245,13 @@ namespace YValve
: Handle(hType(), pub, par), : Handle(hType(), pub, par),
next(0), handle(h) next(0), handle(h)
{ {
toParent(parent->transactions, this); toParent<Transaction>(parent->transactions, this);
} }
Transaction(FB_API_HANDLE* pub, USHORT implementation) Transaction(FB_API_HANDLE* pub, USHORT implementation)
: Handle(hType(), pub, 0, implementation), : Handle(hType(), pub, 0, implementation),
next(0), handle(0) next(0), handle(0)
{ {
// toParent(parent->transactions, this);
} }
~Transaction() ~Transaction()
@ -260,7 +259,7 @@ namespace YValve
cleanup.call(public_handle); cleanup.call(public_handle);
if (parent) if (parent)
{ {
fromParent(parent->transactions, this); fromParent<Transaction>(parent->transactions, this);
} }
} }
}; };
@ -284,12 +283,12 @@ namespace YValve
Request(StReq* h, FB_API_HANDLE* pub, Attachment* par) Request(StReq* h, FB_API_HANDLE* pub, Attachment* par)
: Handle(hType(), pub, par), handle(h) : Handle(hType(), pub, par), handle(h)
{ {
toParent(parent->requests, this); toParent<Request>(parent->requests, this);
} }
~Request() ~Request()
{ {
fromParent(parent->requests, this); fromParent<Request>(parent->requests, this);
} }
}; };
@ -312,12 +311,12 @@ namespace YValve
Blob(StBlb* h, FB_API_HANDLE* pub, Attachment* par) Blob(StBlb* h, FB_API_HANDLE* pub, Attachment* par)
: Handle(hType(), pub, par), handle(h) : Handle(hType(), pub, par), handle(h)
{ {
toParent(parent->blobs, this); toParent<Blob>(parent->blobs, this);
} }
~Blob() ~Blob()
{ {
fromParent(parent->blobs, this); fromParent<Blob>(parent->blobs, this);
} }
}; };
@ -341,7 +340,7 @@ namespace YValve
Statement(StStm* h, FB_API_HANDLE* pub, Attachment* par) Statement(StStm* h, FB_API_HANDLE* pub, Attachment* par)
: Handle(hType(), pub, par), handle(h) : Handle(hType(), pub, par), handle(h)
{ {
toParent(parent->statements, this); toParent<Statement>(parent->statements, this);
memset(&das, 0, sizeof das); memset(&das, 0, sizeof das);
} }
@ -355,7 +354,7 @@ namespace YValve
~Statement() ~Statement()
{ {
fromParent(parent->statements, this); fromParent<Statement>(parent->statements, this);
} }
}; };