2019-12-15 03:55 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000704Spring engineLinuxpublic2007-12-11 17:48
Reporterqknight 
Assigned Totvo 
PrioritynormalSeveritytrivialReproducibilityalways
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000704: MapConv won't compile with boost 1.34.1
DescriptionMapConv/filefunctions.h has a bug:

joachim@flux ~/MapConv $ make clean
rm -f mapconv texcompress *.o

joachim@flux ~/MapConv $ make
g++ -g -c Bitmap.cpp
g++ -g -c MapConv.cpp -Itclap-1.0.5/include/
g++ -g -c TileHandler.cpp
g++ -g -c FeatureCreator.cpp
g++ -g -c FileHandler.cpp
In file included from FileHandler.cpp:5:
filefunctions.h: In function `std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > find_files(boost::filesystem::path&, const std::string&, bool)':
filefunctions.h:131: error: invalid initialization of reference of type 'boost::filesystem::path&' from expression of type 'boost::filesystem::basic_directory_entry<boost::filesystem::path>'
filefunctions.h:116: error: in passing argument 1 of `std::vector<boost::filesystem::path, std::allocator<boost::filesystem::path> > find_files(boost::filesystem::path&, const std::string&, bool)'
make: *** [FileHandler.o] Error 1

with boost 1.34.1 and the fix from below it seems to compile. i didn't test yet if anything broke. i don't expect so.
Additional Informationthis patch will fix this behaviour

joachim@flux ~/MapConv $ svn diff filefunctions.h
Index: filefunctions.h
===================================================================
--- filefunctions.h (revision 4982)
+++ filefunctions.h (working copy)
@@ -127,7 +127,8 @@
                                        if (boost::regex_match(diritr->leaf(),regexpattern))
                                                matches.push_back(*diritr);
                                } else if (recurse) {
- std::vector<fs::path> submatch = find_files(*diritr,pattern,true);
+ fs::path dir_path = *diritr;
+ std::vector<fs::path> submatch = find_files(dir_path,pattern,true);
                                        if (!submatch.empty()) {
                                                for (std::vector<fs::path>::iterator it=submatch.begin(); it != submatch.end(); it++)
                                                        matches.push_back(*it);
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0001495

tvo (reporter)

thanks, committed
+Notes

-Issue History
Date Modified Username Field Change
2007-12-11 17:41 qknight New Issue
2007-12-11 17:41 qknight Status new => assigned
2007-12-11 17:41 qknight Assigned To => tvo
2007-12-11 17:48 tvo Status assigned => resolved
2007-12-11 17:48 tvo Resolution open => fixed
2007-12-11 17:48 tvo Note Added: 0001495
+Issue History