extern "C" {
typedef void *(*db_malloc_fcn_type)(size_t);
};
int
Db::set_malloc(db_malloc_fcn_type db_malloc);
Description
Set the allocation function used by the Db methods to allocate
memory in which to return key/data items to the application.
The DB_DBT_MALLOC flag, when specified in the Dbt object,
will cause the Db methods to allocate and re-allocate memory which
then becomes the responsibility of the calling application. See Dbt
for more information.
On systems where there may be multiple library versions of malloc (notably
Windows NT), specifying the DB_DBT_MALLOC flag will fail because
the Db library will allocate memory from a different heap than
the application will use to free it. To avoid this problem, the
Db::set_malloc method can be used to pass Berkeley DB a reference to the
application's allocation routine, in which case it will be used to
allocate the memory returned when the DB_DBT_MALLOC flag is set.
The method specified must match the calling conventions of the
ANSI C X3.159-1989 (ANSI C) library routine of the same name.
The Db::set_malloc interface may only be used to configure Berkeley DB before
the Db::open interface is called.
The Db::set_malloc method either returns a non-zero error value or throws an exception that
encapsulates a non-zero error value on failure, and returns 0 on success.