Fix some gcc compiler issues
authorScott Cantor <cantor.2@osu.edu>
Wed, 14 Dec 2011 08:49:07 +0000 (08:49 +0000)
committerScott Cantor <cantor.2@osu.edu>
Wed, 14 Dec 2011 08:49:07 +0000 (08:49 +0000)
xmltooling/AbstractComplexElement.cpp
xmltooling/util/ParserPool.cpp
xmltooling/util/ParserPool.h
xmltooling/util/XMLHelper.cpp

index fa1e6ef..9c7a276 100644 (file)
@@ -64,7 +64,7 @@ bool AbstractComplexElement::hasChildren() const
 {
     if (m_children.empty())
         return false;
-    return (find_if(m_children.begin(), m_children.end(), (_1 != nullptr)) != m_children.end());
+    return (find_if(m_children.begin(), m_children.end(), (_1 != ((XMLObject*)nullptr))) != m_children.end());
 }
 
 const list<XMLObject*>& AbstractComplexElement::getOrderedChildren() const
index 6a4700d..5e44c28 100644 (file)
@@ -325,6 +325,7 @@ DOMInputSource* ParserPool::resolveEntity(
 #endif
     if (!systemId)
         return nullptr;
+    xstring sysId(systemId);
 
     Category& log=Category::getInstance(XMLTOOLING_LOGCAT".ParserPool");
     if (log.isDebugEnabled()) {
@@ -334,14 +335,15 @@ DOMInputSource* ParserPool::resolveEntity(
     }
 
     // Find well-known schemas in the specified location.
-    map<xstring,xstring>::const_iterator i = m_schemaLocMap.find(systemId);
+    map<xstring,xstring>::const_iterator i = m_schemaLocMap.find(sysId);
     if (i != m_schemaLocMap.end())
         return new Wrapper4InputSource(new LocalFileInputSource(baseURI, i->second.c_str()));
 
     // Check for entity as a suffix of a value in the map.
+    bool (*p_ends_with)(const xstring&, const xstring&) = ends_with;
     i = find_if(
         m_schemaLocMap.begin(), m_schemaLocMap.end(),
-        boost::bind(ends_with<const xstring&,const xstring&>, boost::bind(&map<xstring,xstring>::value_type::second, _1), systemId)
+        boost::bind(p_ends_with, boost::bind(&map<xstring,xstring>::value_type::second, _1), boost::ref(sysId))
         );
     if (i != m_schemaLocMap.end())
         return new Wrapper4InputSource(new LocalFileInputSource(baseURI, i->second.c_str()));
index 6561329..93c2af4 100644 (file)
@@ -30,6 +30,7 @@
 #include <xmltooling/unicode.h>
 
 #include <map>
+#include <memory>
 #include <stack>
 #include <string>
 #include <istream>
index be7401d..cdbd60b 100644 (file)
@@ -133,7 +133,7 @@ void XMLHelper::getNonVisiblyUsedPrefixes(const XMLObject& tree, map<xstring,xst
     map<xstring,xstring> child_prefixes;
     for_each(
         tree.getOrderedChildren().begin(), tree.getOrderedChildren().end(),
-        if_(_1 != nullptr)[lambda::bind(&getNonVisiblyUsedPrefixes, boost::ref(*_1), boost::ref(child_prefixes))]
+        if_(_1 != ((XMLObject*)nullptr))[lambda::bind(&getNonVisiblyUsedPrefixes, boost::ref(*_1), boost::ref(child_prefixes))]
         );
     const set<Namespace>& nsset = tree.getNamespaces();
     for (set<Namespace>::const_iterator ns = nsset.begin(); ns != nsset.end(); ++ns) {