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_prepare_buffer(*getDefaultMemoryPool())
{
toParent(attachments(), this);
toParent<Attachment>(attachments(), this);
parent = this;
}
Attachment::~Attachment()
{
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
int totalAttachmentCount()
int totalAttachmentCount() const
{
return attachments().getCount();
}
@ -669,7 +669,7 @@ namespace
}
}
bool fatal()
bool fatal() const
{
return vector[0] == isc_arg_gds &&
(vector[1] == isc_shutdown ||
@ -4967,7 +4967,8 @@ ISC_STATUS API_ROUTINE GDS_START_MULTIPLE(ISC_STATUS * user_status,
Transaction** ptr;
USHORT n;
for (n = 0, ptr = &transaction; n < count;
n++, ptr = &(*ptr)->next, vector++) {
n++, ptr = &(*ptr)->next, vector++)
{
dbb = translate<Attachment>(vector->teb_database);
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;
*p++ = TDR_TRANSACTION_ID;
const USHORT length =
(USHORT)gds__vax_integer(reinterpret_cast<UCHAR*>(buffer + 1), 2);
*p++ = length; // Warning: USHORT coerced to char
USHORT length = (USHORT)gds__vax_integer(reinterpret_cast<UCHAR*>(buffer + 1), 2);
// Prevent information out of sync.
if (length > MAX_UCHAR)
length = MAX_UCHAR;
*p++ = length;
memcpy(p, q, length);
*ptr = p + length;
}

View File

@ -245,14 +245,13 @@ namespace YValve
: Handle(hType(), pub, par),
next(0), handle(h)
{
toParent(parent->transactions, this);
toParent<Transaction>(parent->transactions, this);
}
Transaction(FB_API_HANDLE* pub, USHORT implementation)
: Handle(hType(), pub, 0, implementation),
next(0), handle(0)
{
// toParent(parent->transactions, this);
}
~Transaction()
@ -260,7 +259,7 @@ namespace YValve
cleanup.call(public_handle);
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)
: Handle(hType(), pub, par), handle(h)
{
toParent(parent->requests, this);
toParent<Request>(parent->requests, this);
}
~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)
: Handle(hType(), pub, par), handle(h)
{
toParent(parent->blobs, this);
toParent<Blob>(parent->blobs, this);
}
~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)
: Handle(hType(), pub, par), handle(h)
{
toParent(parent->statements, this);
toParent<Statement>(parent->statements, this);
memset(&das, 0, sizeof das);
}
@ -355,7 +354,7 @@ namespace YValve
~Statement()
{
fromParent(parent->statements, this);
fromParent<Statement>(parent->statements, this);
}
};