Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
non-32bit platforms. Will still only allow 32 bits in a timestamp on Win64, but at least it won't crash, and it'll work right on platforms where longs are big enough to contain time_t's. (A better-working, although conceptually less-right fix would have been to use Py_ssize_t here, but Martin and Tim won't let me.)
This commit is contained in:
parent
ca82a8b760
commit
9d63ccae90
|
@ -4190,13 +4190,14 @@ static PyObject*
|
||||||
DBEnv_set_tx_timestamp(DBEnvObject* self, PyObject* args)
|
DBEnv_set_tx_timestamp(DBEnvObject* self, PyObject* args)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
time_t stamp;
|
long stamp;
|
||||||
|
time_t timestamp;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "i:set_tx_timestamp", &stamp))
|
if (!PyArg_ParseTuple(args, "l:set_tx_timestamp", &stamp))
|
||||||
return NULL;
|
return NULL;
|
||||||
CHECK_ENV_NOT_CLOSED(self);
|
CHECK_ENV_NOT_CLOSED(self);
|
||||||
|
timestamp = (time_t)stamp;
|
||||||
err = self->db_env->set_tx_timestamp(self->db_env, &stamp);
|
err = self->db_env->set_tx_timestamp(self->db_env, ×tamp);
|
||||||
RETURN_IF_ERR();
|
RETURN_IF_ERR();
|
||||||
RETURN_NONE();
|
RETURN_NONE();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue