Accomodate 64 bit time_t in the _bsddb module.
This commit is contained in:
parent
6e6eaa7a67
commit
bd77c037ed
|
@ -749,6 +749,24 @@ static void _addIntToDict(PyObject* dict, char *name, int value)
|
||||||
|
|
||||||
Py_XDECREF(v);
|
Py_XDECREF(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The same, when the value is a time_t */
|
||||||
|
static void _addTimeTToDict(PyObject* dict, char *name, time_t value)
|
||||||
|
{
|
||||||
|
PyObject* v;
|
||||||
|
/* if the value fits in regular int, use that. */
|
||||||
|
#ifdef HAVE_LONG_LONG
|
||||||
|
if (sizeof(time_t) > sizeof(long))
|
||||||
|
v = PyLong_FromLongLong((PY_LONG_LONG) value);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
v = PyInt_FromLong((long) value);
|
||||||
|
if (!v || PyDict_SetItemString(dict, name, v))
|
||||||
|
PyErr_Clear();
|
||||||
|
|
||||||
|
Py_XDECREF(v);
|
||||||
|
}
|
||||||
|
|
||||||
#if (DBVER >= 43)
|
#if (DBVER >= 43)
|
||||||
/* add an db_seq_t to a dictionary using the given name as a key */
|
/* add an db_seq_t to a dictionary using the given name as a key */
|
||||||
static void _addDb_seq_tToDict(PyObject* dict, char *name, db_seq_t value)
|
static void _addDb_seq_tToDict(PyObject* dict, char *name, db_seq_t value)
|
||||||
|
@ -4633,8 +4651,9 @@ DBEnv_txn_stat(DBEnvObject* self, PyObject* args)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAKE_ENTRY(name) _addIntToDict(d, #name, sp->st_##name)
|
#define MAKE_ENTRY(name) _addIntToDict(d, #name, sp->st_##name)
|
||||||
|
#define MAKE_TIME_T_ENTRY(name)_addTimeTToDict(d, #name, sp->st_##name)
|
||||||
|
|
||||||
MAKE_ENTRY(time_ckp);
|
MAKE_TIME_T_ENTRY(time_ckp);
|
||||||
MAKE_ENTRY(last_txnid);
|
MAKE_ENTRY(last_txnid);
|
||||||
MAKE_ENTRY(maxtxns);
|
MAKE_ENTRY(maxtxns);
|
||||||
MAKE_ENTRY(nactive);
|
MAKE_ENTRY(nactive);
|
||||||
|
@ -4647,6 +4666,7 @@ DBEnv_txn_stat(DBEnvObject* self, PyObject* args)
|
||||||
MAKE_ENTRY(region_nowait);
|
MAKE_ENTRY(region_nowait);
|
||||||
|
|
||||||
#undef MAKE_ENTRY
|
#undef MAKE_ENTRY
|
||||||
|
#undef MAKE_TIME_T_ENTRY
|
||||||
free(sp);
|
free(sp);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue