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:
parent
fd6e38b0e6
commit
3442fef412
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user