mirror of
https://github.com/python/cpython.git
synced 2025-11-01 02:38:53 +00:00
make hashes always the size of pointers; introduce Py_hash_t #9778
This commit is contained in:
parent
6fb457526c
commit
8f67d0893f
31 changed files with 137 additions and 131 deletions
|
|
@ -247,15 +247,20 @@ is considered sufficient for this determination.
|
|||
*NULL* on failure.
|
||||
|
||||
|
||||
.. c:function:: long PyObject_Hash(PyObject *o)
|
||||
.. c:function:: Py_hash_t PyObject_Hash(PyObject *o)
|
||||
|
||||
.. index:: builtin: hash
|
||||
|
||||
Compute and return the hash value of an object *o*. On failure, return ``-1``.
|
||||
This is the equivalent of the Python expression ``hash(o)``.
|
||||
|
||||
.. versionchanged:: 3.2
|
||||
|
||||
.. c:function:: long PyObject_HashNotImplemented(PyObject *o)
|
||||
The return type is now Py_hash_t. This is a signed integer the same size
|
||||
as Py_ssize_t.
|
||||
|
||||
|
||||
.. c:function:: Py_hash_t PyObject_HashNotImplemented(PyObject *o)
|
||||
|
||||
Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and return ``-1``.
|
||||
This function receives special treatment when stored in a ``tp_hash`` slot,
|
||||
|
|
|
|||
|
|
@ -306,10 +306,10 @@ type objects) *must* have the :attr:`ob_size` field.
|
|||
An optional pointer to a function that implements the built-in function
|
||||
:func:`hash`.
|
||||
|
||||
The signature is the same as for :c:func:`PyObject_Hash`; it must return a C
|
||||
long. The value ``-1`` should not be returned as a normal return value; when an
|
||||
error occurs during the computation of the hash value, the function should set
|
||||
an exception and return ``-1``.
|
||||
The signature is the same as for :c:func:`PyObject_Hash`; it must return a
|
||||
value of the type Py_hash_t. The value ``-1`` should not be returned as a
|
||||
normal return value; when an error occurs during the computation of the hash
|
||||
value, the function should set an exception and return ``-1``.
|
||||
|
||||
This field can be set explicitly to :c:func:`PyObject_HashNotImplemented` to
|
||||
block inheritance of the hash method from a parent type. This is interpreted
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue