From: Victor Stinner Date: Tue, 3 Jan 2017 22:47:12 +0000 (+0100) Subject: Issue #29140: Fix hash(datetime.time) X-Git-Tag: v3.6.1rc1~213 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=423c16b4c3454c8d8c4091ffb4538394a02c75d5;p=thirdparty%2FPython%2Fcpython.git 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). --- diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index c09cce9da725..291920dc0fa3 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)