mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Don't call constructor() from pickle().
The constructor() call only made sense when it registered the constructor as safe for unpickling. We should probably remove the module-global function, but need to worry about backwards compatibility.
This commit is contained in:
parent
d0cda1dc9f
commit
7567822838
1 changed files with 3 additions and 3 deletions
|
@ -12,6 +12,7 @@ __all__ = ["pickle", "constructor",
|
|||
dispatch_table = {}
|
||||
|
||||
def pickle(ob_type, pickle_function, constructor_ob=None):
|
||||
# constructor_ob exists only for backwards compatibility.
|
||||
if type(ob_type) is _ClassType:
|
||||
raise TypeError("copy_reg is not intended for use with classes")
|
||||
|
||||
|
@ -19,10 +20,9 @@ def pickle(ob_type, pickle_function, constructor_ob=None):
|
|||
raise TypeError("reduction functions must be callable")
|
||||
dispatch_table[ob_type] = pickle_function
|
||||
|
||||
if constructor_ob is not None:
|
||||
constructor(constructor_ob)
|
||||
|
||||
def constructor(object):
|
||||
# XXX This function should be deprecated. It is a vestige of
|
||||
# the old __safe_for_unpickling__ code.
|
||||
if not callable(object):
|
||||
raise TypeError("constructors must be callable")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue