From 423c16b4c3454c8d8c4091ffb4538394a02c75d5 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 3 Jan 2017 23:47:12 +0100 Subject: [PATCH] Issue #29140: Fix hash(datetime.time) Fix time_hash() function: replace DATE_xxx() macros with TIME_xxx() macros. Before, the hash function used a wrong value for microseconds if fold is set (equal to 1). --- Modules/_datetimemodule.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index c09cce9da7..291920dc0f 100644 --- a/Modules/_datetimemodule.c +++ b/Modules/_datetimemodule.c @@ -3843,11 +3843,11 @@ time_hash(PyDateTime_Time *self) { if (self->hashcode == -1) { PyObject *offset, *self0; - if (DATE_GET_FOLD(self)) { - self0 = new_time_ex2(DATE_GET_HOUR(self), - DATE_GET_MINUTE(self), - DATE_GET_SECOND(self), - DATE_GET_MICROSECOND(self), + if (TIME_GET_FOLD(self)) { + self0 = new_time_ex2(TIME_GET_HOUR(self), + TIME_GET_MINUTE(self), + TIME_GET_SECOND(self), + TIME_GET_MICROSECOND(self), HASTZINFO(self) ? self->tzinfo : Py_None, 0, Py_TYPE(self)); if (self0 == NULL) -- 2.40.0