From 20a2f3d64ccad188f6d26a71b51b062233cead2a Mon Sep 17 00:00:00 2001 From: Dun Liang Date: Tue, 16 Jun 2020 14:18:41 +0800 Subject: [PATCH] fix pyjt var leak --- python/jittor/pyjt_compiler.py | 4 +++- setup.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/python/jittor/pyjt_compiler.py b/python/jittor/pyjt_compiler.py index bccb60f..b22b4c1 100644 --- a/python/jittor/pyjt_compiler.py +++ b/python/jittor/pyjt_compiler.py @@ -500,6 +500,7 @@ def compile_src(src, h, basename): slot_name = None func_cast = "" func_fill = "" + before_return = "" if name == "__init__": slot_name = "tp_init" func_head = "(PyObject* self, PyObject* _args, PyObject* kw) -> int" @@ -547,6 +548,7 @@ def compile_src(src, h, basename): slot_name = "tp_dealloc" func_head = "(PyObject* self) -> void" func_fill = "int64 n = 0" + before_return = "Py_TYPE(self)->tp_free((PyObject *) self);" elif name in binary_number_slots: slot_name = "tp_as_number->"+binary_number_slots[name] @@ -656,7 +658,7 @@ def compile_src(src, h, basename): func_return_failed = "return -1" else: assert "-> void" in func_head - arr_func_return.append(f"{func_call};return") + arr_func_return.append(f"{func_call};{before_return}return") func_return_failed = "return" # generate error msg when not a valid call error_log_code = generate_error_code_from_func_header(func_head, target_scope_name, name, dfs, basename ,h, class_info) diff --git a/setup.py b/setup.py index d0641c4..344fa91 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ with open(os.path.join(path, "README.md"), "r", encoding='utf8') as fh: setuptools.setup( name='jittor', - version='1.1.4.6', + version='1.1.4.7', # scripts=[], author="Jittor Group", author_email="ran.donglang@gmail.com",