mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 04:43:03 +01:00
Removed support for the remote protocol versions prior to v10.
This commit is contained in:
parent
cf9427d88b
commit
51c0e87146
@ -234,84 +234,6 @@ ISC_STATUS SDL_info(ISC_STATUS* status_vector,
|
||||
}
|
||||
|
||||
|
||||
// CVC: May revisit this function's tricky constness later.
|
||||
const UCHAR* SDL_prepare_slice(const UCHAR* sdl, USHORT sdl_length)
|
||||
{
|
||||
/**************************************
|
||||
*
|
||||
* S D L _ p r e p a r e _ s l i c e
|
||||
*
|
||||
**************************************
|
||||
*
|
||||
* Functional description
|
||||
* Parse a slice and convert each occurrence of
|
||||
* blr_d_float to blr_double.
|
||||
*
|
||||
**************************************/
|
||||
DSC junk;
|
||||
USHORT n;
|
||||
|
||||
const UCHAR* const old_sdl = sdl;
|
||||
const UCHAR* new_sdl = sdl;
|
||||
|
||||
if (*sdl++ != isc_sdl_version1)
|
||||
return old_sdl;
|
||||
|
||||
while (*sdl != isc_sdl_eoc)
|
||||
{
|
||||
switch (*sdl++)
|
||||
{
|
||||
case isc_sdl_struct:
|
||||
for (n = *sdl++; n; --n)
|
||||
{
|
||||
if (*sdl == blr_d_float)
|
||||
{
|
||||
if (new_sdl == old_sdl)
|
||||
{
|
||||
UCHAR* temp_sdl = (UCHAR*)gds__alloc((SLONG) sdl_length);
|
||||
// FREE: apparently never freed
|
||||
if (!temp_sdl)
|
||||
{
|
||||
// NOMEM: ignore operation
|
||||
fb_assert_continue(FALSE); // no real error handling
|
||||
return old_sdl;
|
||||
}
|
||||
memcpy(temp_sdl, old_sdl, sdl_length);
|
||||
new_sdl = temp_sdl;
|
||||
sdl = new_sdl + (sdl - old_sdl);
|
||||
}
|
||||
// CVC: At this time, sdl points to new_sdl, so
|
||||
// throwing the constness away is safe.
|
||||
*const_cast<UCHAR*>(sdl) = blr_double;
|
||||
}
|
||||
|
||||
// const_cast makes sense since we passed non-const object
|
||||
// to sdl_desc, so we got just another position in the same string.
|
||||
if (!(sdl = sdl_desc(sdl, &junk)))
|
||||
return new_sdl;
|
||||
}
|
||||
break;
|
||||
|
||||
case isc_sdl_fid:
|
||||
case isc_sdl_rid:
|
||||
sdl += 2;
|
||||
break;
|
||||
|
||||
case isc_sdl_field:
|
||||
case isc_sdl_relation:
|
||||
n = *sdl++;
|
||||
sdl += n;
|
||||
break;
|
||||
|
||||
default:
|
||||
return new_sdl;
|
||||
}
|
||||
}
|
||||
|
||||
return new_sdl;
|
||||
}
|
||||
|
||||
|
||||
int SDL_walk(ISC_STATUS* status_vector,
|
||||
const UCHAR* sdl,
|
||||
UCHAR* array,
|
||||
|
@ -33,7 +33,6 @@ struct array_alice;
|
||||
|
||||
SLONG SDL_compute_subscript(ISC_STATUS*, const Ods::InternalArrayDesc*, USHORT, const SLONG*);
|
||||
ISC_STATUS SDL_info(ISC_STATUS*, const UCHAR*, sdl_info*, SLONG*);
|
||||
const UCHAR* SDL_prepare_slice(const UCHAR*, USHORT);
|
||||
int SDL_walk(ISC_STATUS*, const UCHAR*, UCHAR*, Ods::InternalArrayDesc*, SLONG*,
|
||||
SDL_walk_callback, array_slice*);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user