Jelajahi Sumber

Vlib: simplify init/free of support structures

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@54935 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 12 tahun lalu
induk
melakukan
e16fef8941
3 mengubah file dengan 1 tambahan dan 17 penghapusan
  1. 0 1
      lib/vector/Vlib/cindex.c
  2. 1 7
      lib/vector/Vlib/close.c
  3. 0 9
      lib/vector/Vlib/open.c

+ 0 - 1
lib/vector/Vlib/cindex.c

@@ -513,7 +513,6 @@ int Vect_cidx_open(struct Map_info *Map, int head_only)
     }
 
     /* load category index to memory */
-    dig_cidx_init(Plus);
     ret = dig_read_cidx(&fp, Plus, head_only);
 
     fclose(fp.file);

+ 1 - 7
lib/vector/Vlib/close.c

@@ -172,14 +172,8 @@ int Vect_close(struct Map_info *Map)
 	fclose(Map->plus.spidx_fp.file);
     }
     if (Map->level > 1 && Map->plus.release_support) {
-	G_debug(1, "free topology");
+	G_debug(1, "free topology, spatial index, and category index");
 	dig_free_plus(&(Map->plus));
-
-	G_debug(1, "free spatial index");
-	dig_spidx_free(&(Map->plus));
-
-	G_debug(1, "free category index");
-	dig_cidx_free(&(Map->plus));
     }
 
     G_debug(1, "close history file");

+ 0 - 9
lib/vector/Vlib/open.c

@@ -347,7 +347,6 @@ int open_old(struct Map_info *Map, const char *name, const char *mapset,
                         "cidx file for vector '%s' not available.",
                         Vect_get_full_name(Map));
                 dig_free_plus(&(Map->plus));    /* free topology */
-                dig_spidx_free(&(Map->plus));   /* free spatial index */
                 level = 1;
             }
             else if (ret == -1) {       /* file exists, but cannot be opened */
@@ -360,8 +359,6 @@ int open_old(struct Map_info *Map, const char *name, const char *mapset,
         if (level == 2 && Map->format == GV_FORMAT_OGR) {
             if (V2_open_old_ogr(Map) < 0) {
                 dig_free_plus(&(Map->plus));
-                dig_spidx_free(&(Map->plus));
-                dig_cidx_free(&(Map->plus));
                 level = 1;
             }
         }
@@ -372,8 +369,6 @@ int open_old(struct Map_info *Map, const char *name, const char *mapset,
         if (level == 2 && Map->format == GV_FORMAT_POSTGIS) {
             if (V2_open_old_pg(Map) < 0) {
                 dig_free_plus(&(Map->plus));
-                dig_spidx_free(&(Map->plus));
-                dig_cidx_free(&(Map->plus));
                 level = 1;
             }
         }
@@ -398,8 +393,6 @@ int open_old(struct Map_info *Map, const char *name, const char *mapset,
         if (0 != (*Open_old_array[format][1]) (Map, update)) {  /* cannot open */
             if (level >= 2) {   /* support files opened */
                 dig_free_plus(&(Map->plus));
-                dig_spidx_free(&(Map->plus));
-                dig_cidx_free(&(Map->plus));
             }
             if (level_request == 0)
                 G_fatal_error(_("Unable to open vector map <%s>"),
@@ -428,8 +421,6 @@ int open_old(struct Map_info *Map, const char *name, const char *mapset,
 	if (level < 2 && Map->head.with_z) {
 	    /* topo has been initialized as 2D, update to 3D */
 	    dig_free_plus(&(Map->plus));
-	    dig_spidx_free(&(Map->plus));
-	    dig_cidx_free(&(Map->plus));
 	    
 	    Map->plus.with_z = Map->head.with_z;
 	    dig_init_plus(&(Map->plus));