|
| From: | Piotr Held |
| Subject: | [Octave-bug-tracker] [bug #52111] meta.class.* does not work after after 'clear classes' |
| Date: | Wed, 27 Sep 2017 21:06:00 -0400 (EDT) |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 |
Follow-up Comment #1, bug #52111 (project octave):
I found out a new bug and solved it with this patch (which I don't think there
is a need to submit a separate bug, it's all quite intertwined). Octave will
close when calling:
meta.event
# or
meta.dynamicproperty
which the latter isn't even Matlab compatible.
The patch introduces two methods:
# cdef_manager::install_meta_classes_in_symtab which is a way of avoiding code
duplication.
# cdef_manager::reinit which takes the classes and packages created in
cdef_manager::initialize() and reloads them. I could call
cdef_manager::initialize again but that increases memory leak from Bug #52123
<https://savannah.gnu.org/bugs/?52123>.
I removed tmp_meta* cdef objects from cdef_manager::intialize since they did
not really serve any purpose and only cluttered the code. I also removed
references to events and dynproperties as they are not implemented and only
cause confusion/octave termination.
I also added some documentation to cdef_manager (in ov-classdef.h)
(file #41907)
_______________________________________________________
Additional Item Attachment:
File name: meta_class_clear_all_patch.diff Size:21 KB
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?52111>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
| [Prev in Thread] | Current Thread | [Next in Thread] |