Subject OSRI Architecture, handles, and 64 Bit Machines
Author Jim Starkey
Samofatov, Nickolay wrote:

>There is no problem in having pointers as handles.
>Handles are always translated to numeric values via lookup tables in
>REMOTE module and there is no dependency between client and server
>platforms, you can access 64-bit server from little- and big-endian
>32-bit or 64-bit machines without problems. Programs are easily portable
>to use 64-bit client library because API is also not changed.
>I prefer to avoid doing any API changes unless really necessary. 32-bit
>API handles may create some portability problems for Firebird users
>while offer no visible benefits.
This is a violation of the OSRI architecture. A handle is and always
has been defined as a 32 bit uninterpreted word. If a pointer happens
to fit in 32, an implementation is free to do so. An implementation is
not free to redefine the handle for the convenience of its developers.

A conforming implementation has not problem is the user defined his
handles as pointers. A non-conforming implementation with crash or
trash user's memory if it writes a 64 handle on a 32 bit word.