#define XDATABASE(x) XRECORD (x, database, Lisp_Database)
#define XSETDATABASE(x, p) XSETRECORD (x, p, database)
#define DATABASEP(x) RECORDP (x, database)
-#define GC_DATABASEP(x) GC_RECORDP (x, database)
#define CHECK_DATABASE(x) CHECK_RECORD (x, database)
#define CONCHECK_DATABASE(x) CONCHECK_RECORD (x, database)
#define DATABASE_LIVE_P(x) (x->live_p)
static Lisp_Database *
allocate_database (void)
{
- Lisp_Database *db = alloc_lcrecord_type (Lisp_Database, lrecord_database);
+ Lisp_Database *db = alloc_lcrecord_type (Lisp_Database, &lrecord_database);
db->fname = Qnil;
db->live_p = 0;
}
static Lisp_Object
-mark_database (Lisp_Object obj, void (*markobj) (Lisp_Object))
+mark_database (Lisp_Object obj)
{
Lisp_Database *db = XDATABASE (obj);
-
- markobj (db->fname);
- return Qnil;
+ return db->fname;
}
static void
DEFINE_LRECORD_IMPLEMENTATION ("database", database,
mark_database, print_database,
- finalize_database, 0, 0,
+ finalize_database, 0, 0, 0,
Lisp_Database);
DEFUN ("close-database", Fclose_database, 1, 1, 0, /*
{
DBC *dbcp;
+#if DB_VERSION_MAJOR > 2 || DB_VERSION_MINOR >=6
+ status = dbp->cursor (dbp, NULL, &dbcp, 0);
+#else
status = dbp->cursor (dbp, NULL, &dbcp);
+#endif
for (status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_FIRST);
status == 0;
status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_NEXT))