Forráskód Böngészése

r.external: close GDALDataset; remove r flag: approximate range is not ok

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@52271 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 13 éve
szülő
commit
d6bb162c68
3 módosított fájl, 8 hozzáadás és 9 törlés
  1. 2 2
      raster/r.external/link.c
  2. 5 6
      raster/r.external/main.c
  3. 1 1
      raster/r.external/proto.h

+ 2 - 2
raster/r.external/link.c

@@ -5,7 +5,7 @@
 
 #include "proto.h"
 
-void query_band(GDALRasterBandH hBand, const char *output, int exact_range,
+void query_band(GDALRasterBandH hBand, const char *output,
 		struct Cell_head *cellhd, struct band_info *info)
 {
     int bGotMin, bGotMax;
@@ -52,7 +52,7 @@ void query_band(GDALRasterBandH hBand, const char *output, int exact_range,
     info->range[0] = GDALGetRasterMinimum(hBand, &bGotMin);
     info->range[1] = GDALGetRasterMaximum(hBand, &bGotMax);
     if(!(bGotMin && bGotMax))
-	GDALComputeRasterMinMax(hBand, !exact_range, info->range);
+	GDALComputeRasterMinMax(hBand, 0, info->range);
 
     Rast_init_colors(&info->colors);
 

+ 5 - 6
raster/r.external/main.c

@@ -42,7 +42,7 @@ int main(int argc, char *argv[])
 	struct Option *input, *source, *output, *band, *title;
     } parm;
     struct {
-	struct Flag *o, *f, *e, *r, *h, *v;
+	struct Flag *o, *f, *e, *h, *v;
     } flag;
     int min_band, max_band, band;
     struct band_info info;
@@ -105,10 +105,6 @@ int main(int argc, char *argv[])
     flag.e->label = _("Extend region extents based on new dataset");
     flag.e->description = _("Also updates the default region if in the PERMANENT mapset");
 
-    flag.r = G_define_flag();
-    flag.r->key = 'r';
-    flag.r->description = _("Require exact range");
-
     flag.h = G_define_flag();
     flag.h->key = 'h';
     flag.h->description = _("Flip horizontally");
@@ -209,13 +205,16 @@ int main(int argc, char *argv[])
 		title2 = G_store(title);
 	}
 
-	query_band(hBand, output2, flag.r->answer, &cellhd, &info);
+	query_band(hBand, output2, &cellhd, &info);
 	create_map(input, band, output2, &cellhd, &info, title, flip);
 
 	G_free(output2);
 	G_free(title2);
     }
 
+    /* close the GDALDataset to avoid segfault in libgdal */
+    GDALClose(hDS);
+
     if (flag.e->answer)
 	update_default_window(&cellhd);
 

+ 1 - 1
raster/r.external/proto.h

@@ -21,7 +21,7 @@ enum flip {
 };
 
 /* link.c */
-void query_band(GDALRasterBandH, const char *, int,
+void query_band(GDALRasterBandH, const char *,
 		struct Cell_head *, struct band_info *);
 void make_cell(const char *, const struct band_info *);
 void make_link(const char *, const char *, int,