Mercurial > pytave
changeset 223:06835a3e3384
pyobject: remove unnecessary forcedelete method
* @pyobject/pyobject.m: remove method
author | Colin Macdonald <cbm@m.fsf.org> |
---|---|
date | Fri, 17 Jun 2016 22:13:54 -0700 |
parents | e2e64ee571b7 |
children | 7feece80fbfa |
files | @pyobject/pyobject.m |
diffstat | 1 files changed, 19 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/@pyobject/pyobject.m Fri Jun 17 16:13:36 2016 -0700 +++ b/@pyobject/pyobject.m Fri Jun 17 22:13:54 2016 -0700 @@ -63,28 +63,26 @@ end function delete (x) - % called on clear of the last reference---for subclasses of - % handle; not called at all for "value classes". - % FIXME: #46497 this is never called! - %save('proof_of_delete', 6, x.id) - disp ('delete') - % throws KeyError if it wasn't in there for some reason - cmd = sprintf ('__InOct__.pop("%s")', x.id); - pyexec (cmd); - end + # Called on clear of the last reference---for subclasses of + # handle; not called at all for "value classes". + # + # FIXME: #46497 this is never called! + # Workaround: call @code{delete(x)} right before @code{clear x}. But + # be careful, @code{x} needs to be the last reference: don't do this: + # @example + # d = pyobject (...); + # d2 = d; + # delete (d) + # clear d + # d2 + # @print{} ... KeyError ... + # @end example - function force_delete (x) - % Manual workaround for #46497: call right before @code{clear x}. But - % be careful, @code{x} needs to be the last reference: don't do this: - % @example - % d = pyobject (...); - % d2 = d; - % force_delete (d) - % clear d - % d2 - % @print{} ... KeyError ... - % @end example - delete (x) + #disp ("delete") + + # throws KeyError if it wasn't in there for some reason + cmd = sprintf ("__InOct__.pop('%s')", x.id); + pyexec (cmd) end dummy (x)