@@ -655,12 +655,8 @@ static Py_hash_t frozendict_hash(PyObject* self) {
655655 PyFrozenDictObject * frozen_self = (PyFrozenDictObject * ) self ;
656656 Py_hash_t hash ;
657657
658- if (frozen_self -> ma_hash_calculated ) {
658+ if (frozen_self -> ma_hash != MINUSONE_HASH ) {
659659 hash = frozen_self -> ma_hash ;
660-
661- if (hash == MINUSONE_HASH ) {
662- PyErr_SetObject (PyExc_TypeError , Py_None );
663- }
664660 }
665661 else {
666662 PyObject * frozen_items_tmp = frozendictitems_new (self , NULL );
@@ -674,13 +670,8 @@ static Py_hash_t frozendict_hash(PyObject* self) {
674670 PyObject * frozen_items = PyFrozenSet_New (frozen_items_tmp );
675671
676672 if (frozen_items == NULL ) {
677- PyObject * err = PyErr_Occurred ();
678-
679- if (err == NULL || ! PyErr_GivenExceptionMatches (err , PyExc_TypeError )) {
680- save_hash = 0 ;
681- }
682-
683673 hash = MINUSONE_HASH ;
674+ save_hash = 0 ;
684675 }
685676 else {
686677 hash = PyFrozenSet_Type .tp_hash (frozen_items );
@@ -689,7 +680,6 @@ static Py_hash_t frozendict_hash(PyObject* self) {
689680
690681 if (save_hash ) {
691682 frozen_self -> ma_hash = hash ;
692- frozen_self -> ma_hash_calculated = 1 ;
693683 }
694684 }
695685
@@ -930,8 +920,7 @@ static PyObject* frozendict_clone(PyObject* self) {
930920 }
931921
932922 new_mp -> ma_used = mp -> ma_used ;
933- new_mp -> ma_hash = -1 ;
934- new_mp -> ma_hash_calculated = 0 ;
923+ new_mp -> ma_hash = MINUSONE_HASH ;
935924 new_mp -> ma_version_tag = DICT_NEXT_VERSION ();
936925
937926 ASSERT_CONSISTENT (new_mp );
@@ -1090,8 +1079,7 @@ static PyObject* frozendict_del(PyObject* self,
10901079 assert (new_keys -> dk_usable >= new_mp -> ma_used );
10911080
10921081 new_mp -> ma_keys = new_keys ;
1093- new_mp -> ma_hash = -1 ;
1094- new_mp -> ma_hash_calculated = 0 ;
1082+ new_mp -> ma_hash = MINUSONE_HASH ;
10951083 new_mp -> ma_version_tag = DICT_NEXT_VERSION ();
10961084
10971085 PyObject * key ;
@@ -1210,8 +1198,7 @@ static PyObject* frozendict_new_barebone(PyTypeObject* type) {
12101198 mp -> ma_keys = NULL ;
12111199 mp -> ma_values = NULL ;
12121200 mp -> ma_used = 0 ;
1213- mp -> ma_hash = -1 ;
1214- mp -> ma_hash_calculated = 0 ;
1201+ mp -> ma_hash = MINUSONE_HASH ;
12151202
12161203 return self ;
12171204}
0 commit comments