[Liblas-commits] hg: don't return heap-allocated objects for program_options

liblas-commits at liblas.org liblas-commits at liblas.org
Fri Sep 10 10:36:46 EDT 2010


changeset 3426476509e8 in /Volumes/Data/www/liblas.org/hg
details: http://hg.liblas.orghg?cmd=changeset;node=3426476509e8
summary: don't return heap-allocated objects for program_options

diffstat:

 apps/las2las2.cpp  |   9 ++++-----
 apps/las2oci.cpp   |  28 ++++++++++++----------------
 apps/laskernel.cpp |  12 ++++++------
 apps/laskernel.hpp |   4 ++--
 4 files changed, 24 insertions(+), 29 deletions(-)

diffs (166 lines):

diff -r c8da6dbbfde7 -r 3426476509e8 apps/las2las2.cpp
--- a/apps/las2las2.cpp	Thu Sep 09 15:16:44 2010 -0500
+++ b/apps/las2las2.cpp	Fri Sep 10 09:15:40 2010 -0500
@@ -182,6 +182,7 @@
     liblas::property_tree::write_xml("junk.xml", top);
     liblas::property_tree::write_xml("schema.xml", reader.GetHeader().GetSchema().GetPTree());
 
+    std::cout <<  reader.GetHeader().GetSchema() << std::endl;
     delete writer;
     delete ofs;
     
@@ -214,8 +215,8 @@
     // try {
 
         po::options_description file_options("las2las2 options");
-        po::options_description* filtering_options = GetFilteringOptions();
-        po::options_description* transform_options = GetTransformationOptions() ;
+        po::options_description filtering_options = GetFilteringOptions();
+        po::options_description transform_options = GetTransformationOptions() ;
 
         po::positional_options_description p;
         p.add("input", 1);
@@ -234,7 +235,7 @@
 
         po::variables_map vm;
         po::options_description options;
-        options.add(file_options).add(*transform_options).add(*filtering_options);
+        options.add(file_options).add(transform_options).add(filtering_options);
         po::store(po::command_line_parser(argc, argv).
           options(options).positional(p).run(), vm);
 
@@ -287,8 +288,6 @@
             return (1);
         }
         
-        delete filtering_options;
-        delete transform_options;
     // }
     // catch(std::exception& e) {
     //     std::cerr << "error: " << e.what() << "\n";
diff -r c8da6dbbfde7 -r 3426476509e8 apps/las2oci.cpp
--- a/apps/las2oci.cpp	Thu Sep 09 15:16:44 2010 -0500
+++ b/apps/las2oci.cpp	Fri Sep 10 09:15:40 2010 -0500
@@ -649,13 +649,13 @@
     return data;
 }
 
-po::options_description* GetFileOptions()
+po::options_description GetFileOptions()
 {
-po::options_description* file_options = new po::options_description("las2oci options");
+po::options_description file_options("las2oci options");
 
 
 
-file_options->add_options()
+file_options.add_options()
     ("help,h", "produce help message")
     ("input,i", po::value< string >(), "input LAS file")
     ("connection,c", po::value< string >(), "OCI connection string")
@@ -685,10 +685,10 @@
 return file_options;
 }
 
-po::options_description* GetHiddenOptions()
+po::options_description GetHiddenOptions()
 {
-    po::options_description* hidden_options = new po::options_description("hidden options");
-hidden_options->add_options()
+    po::options_description hidden_options("hidden options");
+hidden_options.add_options()
     ("xmin", po::value< double >(), "global-extent minx value")
     ("ymin", po::value< double >(), "global-extent miny value")
     ("zmin", po::value< double >(), "global-extent minz value")
@@ -749,10 +749,10 @@
 
     try {
 
-        po::options_description* file_options = GetFileOptions();
-        po::options_description* filtering_options = GetFilteringOptions();
-        po::options_description* transform_options = GetTransformationOptions() ;
-        po::options_description* hidden_options = GetHiddenOptions();
+        po::options_description file_options = GetFileOptions();
+        po::options_description filtering_options = GetFilteringOptions();
+        po::options_description transform_options = GetTransformationOptions() ;
+        po::options_description hidden_options = GetHiddenOptions();
         po::positional_options_description p;
         p.add("input", 1);
         p.add("connection", 1);
@@ -762,7 +762,7 @@
 
         po::variables_map vm;
         po::options_description options;
-        options.add(*file_options).add(*transform_options).add(*filtering_options).add(*hidden_options);
+        options.add(file_options).add(transform_options).add(filtering_options).add(hidden_options);
         po::store(po::command_line_parser(argc, argv).
         options(options).positional(p).run(), vm);
 
@@ -770,7 +770,7 @@
 
         if (vm.count("help")) 
         {
-            std::cout << GetInvocationHeader()<<*file_options<<"\n"<<*transform_options<<"\n"<<*filtering_options<<"\n";
+            std::cout << GetInvocationHeader()<<file_options<<"\n"<<transform_options<<"\n"<<filtering_options<<"\n";
             std::cout <<"\nFor more information, see the full documentation for las2oci at:\n";
             
             std::cout << " http://liblas.org/utilities/las2oci.html\n";
@@ -1283,10 +1283,6 @@
         delete reader2;
         delete istrm2;
         delete con;
-        delete filtering_options;
-        delete transform_options;
-        delete file_options;
-        delete hidden_options;
     }
     catch(std::exception& e) {
         std::cerr << "error: " << e.what() << "\n";
diff -r c8da6dbbfde7 -r 3426476509e8 apps/laskernel.cpp
--- a/apps/laskernel.cpp	Thu Sep 09 15:16:44 2010 -0500
+++ b/apps/laskernel.cpp	Fri Sep 10 09:15:40 2010 -0500
@@ -108,12 +108,12 @@
     return liblas::FilterPtr(filter);
 }
 
-po::options_description* GetFilteringOptions() 
+po::options_description GetFilteringOptions() 
 {
 
-po::options_description* filtering_options = new po::options_description("Filtering options");
+po::options_description filtering_options("Filtering options");
 
-filtering_options->add_options()
+filtering_options.add_options()
     ("extent,e", po::value< string >(), "Extent window that points must fall within to keep.\nUse a comma-separated list, for example, \n  -e minx, miny, maxx, maxy\n  or \n  -e minx, miny, minz, maxx, maxy, maxz")
     ("thin,t", po::value<boost::uint32_t>()->default_value(0), "Simple decimation-style thinning.\nThin the file by removing every t'th point from the file.")
     ("last_return_only", po::value<bool>()->zero_tokens(), "Keep last returns (cannot be used with --first_return_only)")
@@ -135,11 +135,11 @@
 return filtering_options;    
 }
 
-po::options_description* GetTransformationOptions() 
+po::options_description GetTransformationOptions() 
 {
-    po::options_description* transform_options= new po::options_description("Transformation options");
+    po::options_description transform_options("Transformation options");
 
-    transform_options->add_options()
+    transform_options.add_options()
         ("a_srs", po::value< string >(), "Coordinate system to assign to input LAS file")
         ("t_srs", po::value< string >(), "Coordinate system to reproject output LAS file to.  Use --a_srs or verify that your input LAS file has a coordinate system according to lasinfo")   
         ("offset", po::value< string >(), "A comma-separated list of offsets to set on the output file: \n--offset 0,0,0 \n--offset  min,min,min")
diff -r c8da6dbbfde7 -r 3426476509e8 apps/laskernel.hpp
--- a/apps/laskernel.hpp	Thu Sep 09 15:16:44 2010 -0500
+++ b/apps/laskernel.hpp	Fri Sep 10 09:15:40 2010 -0500
@@ -78,8 +78,8 @@
 liblas::FilterPtr MakeColorFilter(liblas::Color const& low, liblas::Color const& high, liblas::FilterI::FilterType ftype); 
 
 
-po::options_description* GetFilteringOptions();
-po::options_description* GetTransformationOptions();
+po::options_description GetFilteringOptions();
+po::options_description GetTransformationOptions();
 
 std::vector<liblas::FilterPtr> GetFilters(po::variables_map vm, bool verbose);
 std::vector<liblas::TransformPtr> GetTransforms(po::variables_map vm, bool verbose, liblas::Header& header);


More information about the Liblas-commits mailing list