[commit] r1923 - trunk/Paradigms/MetaGME/MetaInterpreter/Rep

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Wed May 9 16:42:21 CDT 2012


Author: ksmyth
Date: Wed May  9 16:42:20 2012
New Revision: 1923

Log:
Fix insertion sort in MetaInterpreter

Modified:
   trunk/Paradigms/MetaGME/MetaInterpreter/Rep/FCO.cpp

Modified: trunk/Paradigms/MetaGME/MetaInterpreter/Rep/FCO.cpp
==============================================================================
--- trunk/Paradigms/MetaGME/MetaInterpreter/Rep/FCO.cpp	Fri May  4 11:24:27 2012	(r1922)
+++ trunk/Paradigms/MetaGME/MetaInterpreter/Rep/FCO.cpp	Wed May  9 16:42:20 2012	(r1923)
@@ -9,6 +9,7 @@
 #include "Token.h"
 #include "list"
 #include "algorithm"
+#include <iterator>
 
 #include "globals.h"
 extern Globals global_vars;
@@ -841,25 +842,17 @@
 // dumps out sorted attribute name list 
 std::string FCO::dumpAttributeList( bool check_viewable /* = false */ )
 {
-	std::list<AttributeRep*> temp_list;
-	std::list<AttributeRep*>::iterator t_it;
 	std::string mmm = "";
 
-	AttributeRepPtrList_Iterator it;
-	
-	it = m_finalAttributeList.begin();
-	for( ; it != m_finalAttributeList.end(); ++it)
-		if ( !check_viewable || (*it)->isViewable())
-		{
-			t_it = temp_list.begin();
-			while( t_it != temp_list.end() && (*t_it)->lessThan(*it))
-				++t_it;
-			temp_list.insert( t_it, *it);
-		}
+	std::vector<AttributeRep*> temp_list;
+	std::copy_if(m_finalAttributeList.begin(), m_finalAttributeList.end(),
+		std::back_inserter(temp_list), [&](AttributeRep* p) { return !check_viewable || p->isViewable(); });
+	std::sort(temp_list.begin(), temp_list.end(), [](AttributeRep* a, AttributeRep* b) { return a->lessThan(b); });
 
 	if ( !temp_list.empty())
 	{
 		mmm = " attributes = \"";
+		std::vector<AttributeRep*>::iterator t_it;
 		for( t_it = temp_list.begin(); t_it != temp_list.end(); ++t_it)
 		{
 			if (t_it != temp_list.begin()) mmm += " ";


More information about the gme-commit mailing list