]> granicus.if.org Git - python/commitdiff
Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
authorThomas Wouters <thomas@python.org>
Wed, 1 Mar 2006 01:01:55 +0000 (01:01 +0000)
committerThomas Wouters <thomas@python.org>
Wed, 1 Mar 2006 01:01:55 +0000 (01:01 +0000)
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.)

Modules/_bsddb.c

index c769a11f19c704308199383be03c135befedfd05..8f8eab24c3489f0e506890fdda5962a8455cc48d 100644 (file)
@@ -4190,13 +4190,14 @@ static PyObject*
 DBEnv_set_tx_timestamp(DBEnvObject* self, PyObject* args)
 {
     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;
     CHECK_ENV_NOT_CLOSED(self);
-
-    err = self->db_env->set_tx_timestamp(self->db_env, &stamp);
+    timestamp = (time_t)stamp;
+    err = self->db_env->set_tx_timestamp(self->db_env, &timestamp);
     RETURN_IF_ERR();
     RETURN_NONE();
 }