From 258fb8ed57eea1e802187bc665691a2b7df35404 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Sat, 11 Apr 2015 10:54:52 -0400 Subject: [PATCH] [Matlab] Add missing 'clear' functions Without these functions, it was impossible to use these classes without leaking memory. Even with these functions, the memory is released only when these functions are explicitly called, as old-style Matlab classes have no notion of a destructor. Fixes #252. --- interfaces/matlab/toolbox/1D/@Domain1D/clear.m | 9 +++++++++ interfaces/matlab/toolbox/1D/@Stack/clear.m | 8 ++++++++ interfaces/matlab/toolbox/@Func/clear.m | 8 ++++++++ interfaces/matlab/toolbox/@Mixture/clear.m | 8 ++++++++ interfaces/matlab/toolbox/@ReactorNet/clear.m | 8 ++++++++ interfaces/matlab/toolbox/@Wall/clear.m | 8 ++++++++ interfaces/matlab/toolbox/@XML_Node/clear.m | 8 ++++++++ 7 files changed, 57 insertions(+) create mode 100644 interfaces/matlab/toolbox/1D/@Domain1D/clear.m create mode 100644 interfaces/matlab/toolbox/1D/@Stack/clear.m create mode 100644 interfaces/matlab/toolbox/@Func/clear.m create mode 100644 interfaces/matlab/toolbox/@Mixture/clear.m create mode 100644 interfaces/matlab/toolbox/@ReactorNet/clear.m create mode 100644 interfaces/matlab/toolbox/@Wall/clear.m create mode 100644 interfaces/matlab/toolbox/@XML_Node/clear.m diff --git a/interfaces/matlab/toolbox/1D/@Domain1D/clear.m b/interfaces/matlab/toolbox/1D/@Domain1D/clear.m new file mode 100644 index 000000000..62c8db632 --- /dev/null +++ b/interfaces/matlab/toolbox/1D/@Domain1D/clear.m @@ -0,0 +1,9 @@ +function clear(d) +% CLEAR Delete the C++ Domain1D object. +% clear(d) +% :param d: +% Instance of class :mat:func:`Domain1D` (or another +% object that derives from Domain1D) +% + +domain_methods(d.dom_id, 10); diff --git a/interfaces/matlab/toolbox/1D/@Stack/clear.m b/interfaces/matlab/toolbox/1D/@Stack/clear.m new file mode 100644 index 000000000..c27c0b42a --- /dev/null +++ b/interfaces/matlab/toolbox/1D/@Stack/clear.m @@ -0,0 +1,8 @@ +function clear(s) +% CLEAR Delete the C++ Sim1D object. +% clear(s) +% :param s: +% Instance of class :mat:func:`Stack` +% + +stack_methods(s.stack_id, 110); diff --git a/interfaces/matlab/toolbox/@Func/clear.m b/interfaces/matlab/toolbox/@Func/clear.m new file mode 100644 index 000000000..4e29fd04e --- /dev/null +++ b/interfaces/matlab/toolbox/@Func/clear.m @@ -0,0 +1,8 @@ +function clear(f) +% CLEAR Delete the C++ Func1 object. +% clear(f) +% :param f: +% Instance of class :mat:func:`Func` +% + +funcmethods(f.index, 1); diff --git a/interfaces/matlab/toolbox/@Mixture/clear.m b/interfaces/matlab/toolbox/@Mixture/clear.m new file mode 100644 index 000000000..e657635d9 --- /dev/null +++ b/interfaces/matlab/toolbox/@Mixture/clear.m @@ -0,0 +1,8 @@ +function clear(m) +% CLEAR Delete the C++ MultiPhase object. +% clear(m) +% :param m: +% Instance of class :mat:func:`Mixture` +% + +mixturemethods(1, m.mixindex); diff --git a/interfaces/matlab/toolbox/@ReactorNet/clear.m b/interfaces/matlab/toolbox/@ReactorNet/clear.m new file mode 100644 index 000000000..a043a9773 --- /dev/null +++ b/interfaces/matlab/toolbox/@ReactorNet/clear.m @@ -0,0 +1,8 @@ +function clear(n) +% CLEAR Delete the C++ ReactorNet object. +% clear(n) +% :param n: +% Instance of class :mat:func:`ReactorNet` +% + +reactornetmethods(1, n.index); diff --git a/interfaces/matlab/toolbox/@Wall/clear.m b/interfaces/matlab/toolbox/@Wall/clear.m new file mode 100644 index 000000000..77bf176bc --- /dev/null +++ b/interfaces/matlab/toolbox/@Wall/clear.m @@ -0,0 +1,8 @@ +function clear(w) +% CLEAR Delete the C++ Wall object. +% clear(w) +% :param w: +% Instance of class :mat:func:`Wall` +% + +wallmethods(1, w.index); diff --git a/interfaces/matlab/toolbox/@XML_Node/clear.m b/interfaces/matlab/toolbox/@XML_Node/clear.m new file mode 100644 index 000000000..8bad25f52 --- /dev/null +++ b/interfaces/matlab/toolbox/@XML_Node/clear.m @@ -0,0 +1,8 @@ +function clear(x) +% CLEAR Delete the C++ XML_Node object. +% clear(x) +% :param x: +% Instance of class :mat:func:`XML_Node` +% + +ctmethods(10, 1, x.id);