Adding 'instanceExists()' static methods to THREE of the RplSetMgr subclasses. This is needed because an enhancement to RplSet::populateNameSpace() for the development of Global RPL Functions causes infinite recursion via RplSetMgr::allOpenSets(). This method is not the place to be instantiating RplSet Managers, and it doesn't need to. ----------------- Opt/OptSetMgr.cpp Opt/OptSetMgr.hpp ----------------- static bool instanceExists(); bool OptSetMgr::instanceExists() { return (_optSetMgr != NULL); } ------------------ Rpl/RuleSetMgr.cpp Rpl/RuleSetMgr.hpp ------------------ static bool instanceExists(); bool RuleSetMgr::instanceExists() { return (_ruleSetMgr != NULL); } ---------------------- Sim/RplExprSlotMgr.hpp ---------------------- inline static bool instanceExists(); inline bool RplExprSlotMgr::instanceExists() { return (instance != NULL); } =================================== ----------------- Rpl/RplSetMgr.hpp Rpl/RplSetMgr.hpp ----------------- (1) New method: // Get the groups in all currently open Global RPL sets, // optionally excluding the specified 'exclude' RplSet. void getGlobalGroups (cwSlist& retList, RplSet* excludeRplSet = NULL) const; (2) void RplSetMgr::allOpenSets(Rpl::SetList& sets) Process the various RplSetMgrs only if they exist. Specifically, don't force them to be instantiated -- if they don't yet exist, then they certainly don't contain any open RplSets. The unnecessary instantiation, in the context of this method, was causing infinite recursion, with the use of the new getGlobalGroups method in RplSet::populateNameSpace(). ---