+ ptr_vector<TrustEngine>::iterator i =
+ find_if(m_engines.begin(), m_engines.end(), (&_1 == oldEngine));
+ if (i != m_engines.end()) {
+ SignatureTrustEngine* sig = dynamic_cast<SignatureTrustEngine*>(oldEngine);
+ if (sig) {
+ ptr_vector<SignatureTrustEngine>::iterator s =
+ find_if(m_sigEngines.begin(), m_sigEngines.end(), (&_1 == sig));
+ if (s != m_sigEngines.end())
+ m_sigEngines.erase(s);
+ }
+
+ X509TrustEngine* x509 = dynamic_cast<X509TrustEngine*>(oldEngine);
+ if (x509) {
+ ptr_vector<X509TrustEngine>::iterator x =
+ find_if(m_x509Engines.begin(), m_x509Engines.end(), (&_1 == x509));
+ if (x != m_x509Engines.end())
+ m_x509Engines.erase(x);