diff --git a/src/FDM/JSBSim/FGFDMExec.cpp b/src/FDM/JSBSim/FGFDMExec.cpp index ab0bf8a9a..25c5bdd17 100644 --- a/src/FDM/JSBSim/FGFDMExec.cpp +++ b/src/FDM/JSBSim/FGFDMExec.cpp @@ -78,22 +78,6 @@ static const char *IdHdr = ID_FDMEXEC; CLASS IMPLEMENTATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -void checkTied ( FGPropertyManager *node ) -{ - int N = node->nChildren(); - string name; - - for (int i=0; igetChild(i)->nChildren() ) { - checkTied( (FGPropertyManager*)node->getChild(i) ); - } - if ( node->getChild(i)->isTied() ) { - name = ((FGPropertyManager*)node->getChild(i))->GetFullyQualifiedName(); - node->Untie(name); - } - } -} - //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // Constructor @@ -185,7 +169,7 @@ FGFDMExec::FGFDMExec(FGPropertyManager* root, unsigned int* fdmctr) : Root(root) FGFDMExec::~FGFDMExec() { try { - checkTied( instance ); + Unbind(); DeAllocate(); if (IdFDM == 0) { // Meaning this is no child FDM diff --git a/src/FDM/JSBSim/FGFDMExec.h b/src/FDM/JSBSim/FGFDMExec.h index c1038c471..b982654e7 100644 --- a/src/FDM/JSBSim/FGFDMExec.h +++ b/src/FDM/JSBSim/FGFDMExec.h @@ -227,7 +227,7 @@ public: ~FGFDMExec(); /** Unbind all tied JSBSim properties. */ - void unbind(void) {instance->unbind();} + void Unbind(void) {instance->Unbind();} /** This routine places a model into the runlist at the specified rate. The "rate" is not really a clock rate. It represents how many calls to the diff --git a/src/FDM/JSBSim/JSBSim.cxx b/src/FDM/JSBSim/JSBSim.cxx index ba35d6900..0f8d5130a 100644 --- a/src/FDM/JSBSim/JSBSim.cxx +++ b/src/FDM/JSBSim/JSBSim.cxx @@ -426,7 +426,7 @@ void FGJSBsim::init() void FGJSBsim::unbind() { - fdmex->unbind(); + fdmex->Unbind(); FGInterface::unbind(); } diff --git a/src/FDM/JSBSim/input_output/FGPropertyManager.cpp b/src/FDM/JSBSim/input_output/FGPropertyManager.cpp index 899565ed2..c0218ec20 100755 --- a/src/FDM/JSBSim/input_output/FGPropertyManager.cpp +++ b/src/FDM/JSBSim/input_output/FGPropertyManager.cpp @@ -53,7 +53,7 @@ std::vector FGPropertyManager::tied_properties; //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void FGPropertyManager::unbind(void) +void FGPropertyManager::Unbind(void) { vector::iterator it; for (it = tied_properties.begin();it < tied_properties.end();it++) @@ -314,11 +314,12 @@ void FGPropertyManager::Untie (const string &name) void FGPropertyManager::Tie (const string &name, bool *pointer, bool useDefault) { - tied_properties.push_back(name); if (!tie(name.c_str(), SGRawValuePointer(pointer), useDefault)) cerr << "Failed to tie property " << name << " to a pointer" << endl; - else if (debug_lvl & 0x20) - cout << name << endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -326,11 +327,12 @@ void FGPropertyManager::Tie (const string &name, bool *pointer, bool useDefault) void FGPropertyManager::Tie (const string &name, int *pointer, bool useDefault ) { - tied_properties.push_back(name); if (!tie(name.c_str(), SGRawValuePointer(pointer), useDefault)) cerr << "Failed to tie property " << name << " to a pointer" << endl; - else if (debug_lvl & 0x20) - cout << name << endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -338,11 +340,12 @@ void FGPropertyManager::Tie (const string &name, int *pointer, void FGPropertyManager::Tie (const string &name, long *pointer, bool useDefault ) { - tied_properties.push_back(name); if (!tie(name.c_str(), SGRawValuePointer(pointer), useDefault)) cerr << "Failed to tie property " << name << " to a pointer" << endl; - else if (debug_lvl & 0x20) - cout << name << endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -350,22 +353,24 @@ void FGPropertyManager::Tie (const string &name, long *pointer, void FGPropertyManager::Tie (const string &name, float *pointer, bool useDefault ) { - tied_properties.push_back(name); if (!tie(name.c_str(), SGRawValuePointer(pointer), useDefault)) cerr << "Failed to tie property " << name << " to a pointer" << endl; - else if (debug_lvl & 0x20) - cout << name << endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void FGPropertyManager::Tie (const string &name, double *pointer, bool useDefault) { - tied_properties.push_back(name); if (!tie(name.c_str(), SGRawValuePointer(pointer), useDefault)) cerr << "Failed to tie property " << name << " to a pointer" << endl; - else if (debug_lvl & 0x20) - cout << name << endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } } // namespace JSBSim diff --git a/src/FDM/JSBSim/input_output/FGPropertyManager.h b/src/FDM/JSBSim/input_output/FGPropertyManager.h index 54ea91874..a08f89681 100644 --- a/src/FDM/JSBSim/input_output/FGPropertyManager.h +++ b/src/FDM/JSBSim/input_output/FGPropertyManager.h @@ -406,7 +406,7 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase * Classes should use this function to release control of any * properties they have bound using this property manager. */ - void unbind (void); + void Unbind (void); // Templates cause ambiguity here @@ -534,8 +534,10 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase { if (!tie(name.c_str(), SGRawValueFunctions(getter, setter), useDefault)) std::cout << "Failed to tie property " << name << " to functions" << std::endl; - else if (debug_lvl & 0x20) - std::cout << name << std::endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } @@ -562,8 +564,10 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase { if (!tie(name.c_str(), SGRawValueFunctionsIndexed(index, getter, setter), useDefault)) std::cout << "Failed to tie property " << name << " to indexed functions" << std::endl; - else if (debug_lvl & 0x20) - std::cout << name << std::endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } @@ -592,8 +596,10 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase { if (!tie(name.c_str(), SGRawValueMethods(*obj, getter, setter), useDefault)) std::cout << "Failed to tie property " << name << " to object methods" << std::endl; - else if (debug_lvl & 0x20) - std::cout << name << std::endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } /** @@ -621,8 +627,10 @@ class FGPropertyManager : public SGPropertyNode, public FGJSBBase { if (!tie(name.c_str(), SGRawValueMethodsIndexed(*obj, index, getter, setter), useDefault)) std::cout << "Failed to tie property " << name << " to indexed object methods" << std::endl; - else if (debug_lvl & 0x20) - std::cout << name << std::endl; + else { + tied_properties.push_back(name); + if (debug_lvl & 0x20) std::cout << name << std::endl; + } } }; }