Crash for some objects is now fixed
parent
642515a322
commit
ea0c85ef06
|
@ -107,14 +107,13 @@ void Constructor::matlab_wrapper(const string& toolboxPath,
|
||||||
file.oss << "{" << endl;
|
file.oss << "{" << endl;
|
||||||
file.oss << " void operator() (Shared* p)" << endl;
|
file.oss << " void operator() (Shared* p)" << endl;
|
||||||
file.oss << " {" << endl;
|
file.oss << " {" << endl;
|
||||||
file.oss << " delete p;" << endl;
|
file.oss << " collector.erase(p);" << endl;
|
||||||
file.oss << " }" << endl;
|
file.oss << " }" << endl;
|
||||||
file.oss << "};" << endl;
|
file.oss << "};" << endl;
|
||||||
file.oss << endl;
|
file.oss << endl;
|
||||||
|
|
||||||
//Generate cleanup function
|
//Generate cleanup function
|
||||||
file.oss << "void cleanup(void) {" << endl;
|
file.oss << "void cleanup(void) {" << endl;
|
||||||
file.oss << " mexPrintf(\"MEX-file new_gtsamDummy_ is terminating\");" << endl;
|
|
||||||
file.oss << " std::for_each( collector.begin(), collector.end(), Destruct() );" << endl;
|
file.oss << " std::for_each( collector.begin(), collector.end(), Destruct() );" << endl;
|
||||||
file.oss << "}" << endl;
|
file.oss << "}" << endl;
|
||||||
|
|
||||||
|
@ -129,13 +128,13 @@ void Constructor::matlab_wrapper(const string& toolboxPath,
|
||||||
file.oss << " if(self) {" << endl;
|
file.oss << " if(self) {" << endl;
|
||||||
file.oss << " if(nargin > 1) {" << endl;
|
file.oss << " if(nargin > 1) {" << endl;
|
||||||
file.oss << " collector.insert(self);" << endl;
|
file.oss << " collector.insert(self);" << endl;
|
||||||
|
//TODO: Add verbosity flag
|
||||||
file.oss << " std::cout << \"Collected\" << collector.size() << std::endl;" << endl;
|
file.oss << " std::cout << \"Collected\" << collector.size() << std::endl;" << endl;
|
||||||
file.oss << " }" << endl;
|
file.oss << " }" << endl;
|
||||||
file.oss << " else if(collector.erase(self))" << endl;
|
file.oss << " else if(collector.erase(self))" << endl;
|
||||||
file.oss << " delete self;" << endl;
|
file.oss << " delete self;" << endl;
|
||||||
file.oss << " } else {" << endl;
|
file.oss << " } else {" << endl;
|
||||||
file.oss << " int nc = unwrap<int>(in[1]);" << endl;
|
file.oss << " int nc = unwrap<int>(in[1]);" << endl;
|
||||||
file.oss << " mexPrintf(\"MEX-file constructor\");" << endl << endl;;
|
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
BOOST_FOREACH(ArgumentList al, args_list)
|
BOOST_FOREACH(ArgumentList al, args_list)
|
||||||
|
|
Loading…
Reference in New Issue