Skip to content

Commit 90a846c

Browse files
committed
Add pickling tests, fix refcounting bug
1 parent de0e39e commit 90a846c

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

Lib/test/test_type_aliases.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import pickle
12
import types
23
import unittest
34
from test.support import check_syntax_error, run_code
@@ -214,3 +215,9 @@ def test_module(self):
214215
mod_generics_cache.__name__)
215216
self.assertEqual(mod_generics_cache.OldStyle.__module__,
216217
mod_generics_cache.__name__)
218+
219+
def test_pickling(self):
220+
pickled = pickle.dumps(mod_generics_cache.Alias)
221+
self.assertIs(pickle.loads(pickled), mod_generics_cache.Alias)
222+
pickled = pickle.dumps(mod_generics_cache.OldStyle)
223+
self.assertIs(pickle.loads(pickled), mod_generics_cache.OldStyle)

Objects/typevarobject.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1319,7 +1319,8 @@ typealias_module(PyObject *self, void *unused)
13191319
return Py_NewRef(ta->module);
13201320
}
13211321
if (ta->compute_value != NULL) {
1322-
return PyFunction_GetModule(ta->compute_value);
1322+
// PyFunction_GetModule() returns a borrowed reference
1323+
return Py_NewRef(PyFunction_GetModule(ta->compute_value));
13231324
}
13241325
Py_RETURN_NONE;
13251326
}

0 commit comments

Comments
 (0)