Skip to content

Commit 2fab5cd

Browse files
committed
_struct
Signed-off-by: Matthew A Johnson <matjoh@microsoft.com>
1 parent 5a0b5b7 commit 2fab5cd

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

Lib/test/test_freeze/test_datetime.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
import unittest
32
from datetime import datetime, timedelta
43

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import unittest
2+
from struct import Struct
3+
4+
from .test_common import BaseObjectTest
5+
6+
7+
class TestStruct(BaseObjectTest):
8+
def __init__(self, *args, **kwargs):
9+
super().__init__(*args, obj=Struct("i"), **kwargs)
10+
11+
12+
if __name__ == "__main__":
13+
unittest.main()

Modules/_elementtree.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4386,11 +4386,10 @@ module_exec(PyObject *m)
43864386
if(register_freezable != NULL)
43874387
{
43884388
PyObject* result = PyObject_CallOneArg(register_freezable, (PyObject *)st->Element_Type);
4389+
Py_DECREF(register_freezable);
43894390
if(result == NULL){
43904391
goto error;
43914392
}
4392-
4393-
Py_DECREF(register_freezable);
43944393
}
43954394

43964395
st->deepcopy_obj = _PyImport_GetModuleAttrString("copy", "deepcopy");

Modules/_struct.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2503,6 +2503,9 @@ _structmodule_exec(PyObject *m)
25032503
if (PyModule_AddType(m, (PyTypeObject *)state->PyStructType) < 0) {
25042504
return -1;
25052505
}
2506+
if (_PyImmutability_RegisterFreezable((PyTypeObject *)state->PyStructType) < 0){
2507+
return -1;
2508+
}
25062509

25072510
state->unpackiter_type = PyType_FromModuleAndSpec(
25082511
m, &unpackiter_type_spec, NULL);

0 commit comments

Comments
 (0)