Switch to pointer parameters to fix boost bug.
authorScott Cantor <cantor.2@osu.edu>
Thu, 23 Feb 2012 22:44:21 +0000 (22:44 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 23 Feb 2012 22:44:21 +0000 (22:44 +0000)
saml/saml2/metadata/impl/EntityAttributesMetadataFilter.cpp
saml/saml2/metadata/impl/WhitelistMetadataFilter.cpp

index 407fd81..bb1bfdf 100644 (file)
@@ -56,8 +56,8 @@ namespace opensaml {
             void doFilter(XMLObject& xmlObject) const;
 
         private:
             void doFilter(XMLObject& xmlObject) const;
 
         private:
-            void filterEntity(EntityDescriptor& entity) const;
-            void filterGroup(EntitiesDescriptor& entities) const;
+            void filterEntity(EntityDescriptor* entity) const;
+            void filterGroup(EntitiesDescriptor* entities) const;
 
             vector< boost::shared_ptr<Attribute> > m_attributes;
             typedef multimap<xstring,const Attribute*> applymap_t;
 
             vector< boost::shared_ptr<Attribute> > m_attributes;
             typedef multimap<xstring,const Attribute*> applymap_t;
@@ -101,12 +101,12 @@ void EntityAttributesMetadataFilter::doFilter(XMLObject& xmlObject) const
 {
     EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
     if (group) {
 {
     EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
     if (group) {
-        filterGroup(*group);
+        filterGroup(group);
     }
     else {
         EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&xmlObject);
         if (entity) {
     }
     else {
         EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&xmlObject);
         if (entity) {
-            filterEntity(*entity);
+            filterEntity(entity);
         }
         else {
             throw MetadataFilterException(ENTITYATTR_METADATA_FILTER" MetadataFilter was given an improper metadata instance to filter.");
         }
         else {
             throw MetadataFilterException(ENTITYATTR_METADATA_FILTER" MetadataFilter was given an improper metadata instance to filter.");
@@ -114,30 +114,24 @@ void EntityAttributesMetadataFilter::doFilter(XMLObject& xmlObject) const
     }
 }
 
     }
 }
 
-void EntityAttributesMetadataFilter::filterGroup(EntitiesDescriptor& entities) const
+void EntityAttributesMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
 {
 {
-    const vector<EntityDescriptor*>& v = const_cast<const EntitiesDescriptor&>(entities).getEntityDescriptors();
-    for_each(
-        make_indirect_iterator(v.begin()), make_indirect_iterator(v.end()),
-        lambda::bind(&EntityAttributesMetadataFilter::filterEntity, this, _1)
-        );
-
-    const vector<EntitiesDescriptor*>& v2 = const_cast<const EntitiesDescriptor&>(entities).getEntitiesDescriptors();
-    for_each(
-        make_indirect_iterator(v2.begin()), make_indirect_iterator(v2.end()),
-        lambda::bind(&EntityAttributesMetadataFilter::filterGroup, this, _1)
-        );
+    const vector<EntityDescriptor*>& v = const_cast<const EntitiesDescriptor*>(entities)->getEntityDescriptors();
+    for_each(v.begin(), v.end(), lambda::bind(&EntityAttributesMetadataFilter::filterEntity, this, _1));
+
+    const vector<EntitiesDescriptor*>& v2 = const_cast<const EntitiesDescriptor*>(entities)->getEntitiesDescriptors();
+    for_each(v2.begin(), v2.end(), lambda::bind(&EntityAttributesMetadataFilter::filterGroup, this, _1));
 }
 
 }
 
-void EntityAttributesMetadataFilter::filterEntity(EntityDescriptor& entity) const
+void EntityAttributesMetadataFilter::filterEntity(EntityDescriptor* entity) const
 {
 {
-    if (entity.getEntityID()) {
-        pair<applymap_t::const_iterator,applymap_t::const_iterator> tags = m_applyMap.equal_range(entity.getEntityID());
+    if (entity->getEntityID()) {
+        pair<applymap_t::const_iterator,applymap_t::const_iterator> tags = m_applyMap.equal_range(entity->getEntityID());
         if (tags.first != tags.second) {
         if (tags.first != tags.second) {
-            Extensions* exts = entity.getExtensions();
+            Extensions* exts = entity->getExtensions();
             if (!exts) {
             if (!exts) {
-                entity.setExtensions(ExtensionsBuilder::buildExtensions());
-                exts = entity.getExtensions();
+                entity->setExtensions(ExtensionsBuilder::buildExtensions());
+                exts = entity->getExtensions();
             }
             EntityAttributes* wrapper = nullptr;
             const vector<XMLObject*>& children = const_cast<const Extensions*>(exts)->getUnknownXMLObjects();
             }
             EntityAttributes* wrapper = nullptr;
             const vector<XMLObject*>& children = const_cast<const Extensions*>(exts)->getUnknownXMLObjects();
index 5c38639..3b086ba 100644 (file)
@@ -55,7 +55,7 @@ namespace opensaml {
             void doFilter(XMLObject& xmlObject) const;
 
         private:
             void doFilter(XMLObject& xmlObject) const;
 
         private:
-            void filterGroup(EntitiesDescriptor&) const;
+            void filterGroup(EntitiesDescriptor*) const;
             bool included(const EntityDescriptor&) const;
             bool matches(const EntityAttributes*, const Attribute*) const;
 
             bool included(const EntityDescriptor&) const;
             bool matches(const EntityAttributes*, const Attribute*) const;
 
@@ -95,7 +95,7 @@ void WhitelistMetadataFilter::doFilter(XMLObject& xmlObject) const
 {
     EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
     if (group) {
 {
     EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
     if (group) {
-        filterGroup(*group);
+        filterGroup(group);
     }
     else {
         EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&xmlObject);
     }
     else {
         EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&xmlObject);
@@ -109,11 +109,11 @@ void WhitelistMetadataFilter::doFilter(XMLObject& xmlObject) const
     }
 }
 
     }
 }
 
-void WhitelistMetadataFilter::filterGroup(EntitiesDescriptor& entities) const
+void WhitelistMetadataFilter::filterGroup(EntitiesDescriptor* entities) const
 {
     Category& log=Category::getInstance(SAML_LOGCAT".MetadataFilter."WHITELIST_METADATA_FILTER);
 
 {
     Category& log=Category::getInstance(SAML_LOGCAT".MetadataFilter."WHITELIST_METADATA_FILTER);
 
-    VectorOf(EntityDescriptor) v = entities.getEntityDescriptors();
+    VectorOf(EntityDescriptor) v = entities->getEntityDescriptors();
     for (VectorOf(EntityDescriptor)::size_type i = 0; i < v.size(); ) {
         if (!included(*v[i])) {
             auto_ptr_char id(v[i]->getEntityID());
     for (VectorOf(EntityDescriptor)::size_type i = 0; i < v.size(); ) {
         if (!included(*v[i])) {
             auto_ptr_char id(v[i]->getEntityID());
@@ -125,11 +125,8 @@ void WhitelistMetadataFilter::filterGroup(EntitiesDescriptor& entities) const
         }
     }
 
         }
     }
 
-    const vector<EntitiesDescriptor*>& groups = const_cast<const EntitiesDescriptor&>(entities).getEntitiesDescriptors();
-    for_each(
-        make_indirect_iterator(groups.begin()), make_indirect_iterator(groups.end()),
-        lambda::bind(&WhitelistMetadataFilter::filterGroup, this, _1)
-        );
+    const vector<EntitiesDescriptor*>& groups = const_cast<const EntitiesDescriptor*>(entities)->getEntitiesDescriptors();
+    for_each(groups.begin(), groups.end(), lambda::bind(&WhitelistMetadataFilter::filterGroup, this, _1));
 }
 
 bool WhitelistMetadataFilter::included(const EntityDescriptor& entity) const
 }
 
 bool WhitelistMetadataFilter::included(const EntityDescriptor& entity) const