Address certificate object lifetime with wrapper class.
[shibboleth/cpp-xmltooling.git] / xmltooling / signature / impl / FilesystemCredentialResolver.cpp
index c4362d5..2389c14 100644 (file)
@@ -73,13 +73,15 @@ namespace xmlsignature {
         \r
         XSECCryptoKey* resolveKey(const KeyInfo* keyInfo) const { return m_key ? m_key->clone() : NULL; }\r
         XSECCryptoKey* resolveKey(DSIGKeyInfoList* keyInfo) const { return m_key ? m_key->clone() : NULL; }\r
-        vector<XSECCryptoX509*>::size_type resolveCertificates(const KeyInfo* keyInfo, vector<XSECCryptoX509*>& certs) const {\r
-            certs.assign(m_xseccerts.begin(), m_xseccerts.end());\r
-            return certs.size();\r
+        vector<XSECCryptoX509*>::size_type resolveCertificates(const KeyInfo* keyInfo, ResolvedCertificates& certs) const {\r
+            accessCertificates(certs).assign(m_xseccerts.begin(), m_xseccerts.end());\r
+            accessOwned(certs) = false;\r
+            return accessCertificates(certs).size();\r
         }\r
-        vector<XSECCryptoX509*>::size_type resolveCertificates(DSIGKeyInfoList* keyInfo, vector<XSECCryptoX509*>& certs) const {\r
-            certs.assign(m_xseccerts.begin(), m_xseccerts.end());\r
-            return certs.size();\r
+        vector<XSECCryptoX509*>::size_type resolveCertificates(DSIGKeyInfoList* keyInfo, ResolvedCertificates& certs) const {\r
+            accessCertificates(certs).assign(m_xseccerts.begin(), m_xseccerts.end());\r
+            accessOwned(certs) = false;\r
+            return accessCertificates(certs).size();\r
         }\r
         \r
     private:\r