[mapserver-commits] r11647 - trunk/mapserver

svn at osgeo.org svn at osgeo.org
Wed May 4 23:51:06 EDT 2011


Author: sdlime
Date: 2011-05-04 20:51:06 -0700 (Wed, 04 May 2011)
New Revision: 11647

Modified:
   trunk/mapserver/HISTORY.TXT
   trunk/mapserver/mapquery.c
Log:
Call msLayerClose() before msLayerOpen() in query operations to ensure all parser data is cleaned up. (#3692)

Modified: trunk/mapserver/HISTORY.TXT
===================================================================
--- trunk/mapserver/HISTORY.TXT	2011-05-04 18:46:39 UTC (rev 11646)
+++ trunk/mapserver/HISTORY.TXT	2011-05-05 03:51:06 UTC (rev 11647)
@@ -15,6 +15,8 @@
 Current Version (SVN trunk): 
 ---------------------------- 
 
+- Call msLayerClose() before msLayerOpen() in the various query functions (#3692)
+
 - Use full list of epsg codes with inverted axis (#3582)
 
 - PHP/Mapscript: Added getResultsBounds() method in layer object (#2967)

Modified: trunk/mapserver/mapquery.c
===================================================================
--- trunk/mapserver/mapquery.c	2011-05-04 18:46:39 UTC (rev 11646)
+++ trunk/mapserver/mapquery.c	2011-05-05 03:51:06 UTC (rev 11647)
@@ -510,7 +510,7 @@
     }
   }
 
-  /* open this layer */
+  msLayerClose(lp); /* reset */
   status = msLayerOpen(lp);
   if(status != MS_SUCCESS) return(MS_FAILURE);
 
@@ -659,7 +659,7 @@
 
   msInitShape(&shape);
 
-  /* open this layer */
+  msLayerClose(lp); /* reset */
   status = msLayerOpen(lp);
   if(status != MS_SUCCESS) {
     msRestoreOldFilter(lp, old_filtertype, old_filteritem, old_filterstring); /* manually reset the filter */
@@ -839,6 +839,7 @@
       msCopyExpression(&lp->filter, map->query.filter); /* apply new filter */
     }
 
+    msLayerClose(lp); /* reset */
     status = msLayerOpen(lp);
     if(status != MS_SUCCESS) goto query_error;
 
@@ -1028,7 +1029,7 @@
       continue;
     }
 
-    /* open this layer */
+    msLayerClose(lp); /* reset */
     status = msLayerOpen(lp);
     if(status != MS_SUCCESS) return(MS_FAILURE);
 
@@ -1235,7 +1236,7 @@
     else
       tolerance = layer_tolerance * (msInchesPerUnit(lp->toleranceunits,0)/msInchesPerUnit(map->units,0));
 
-    /* open this layer */
+    msLayerClose(lp); /* reset */
     status = msLayerOpen(lp);
     if(status != MS_SUCCESS) return(MS_FAILURE);
     
@@ -1539,7 +1540,7 @@
     rect.miny = map->query.point.y - t;
     rect.maxy = map->query.point.y + t;
 
-    /* open this layer */
+    msLayerClose(lp); /* reset */
     status = msLayerOpen(lp);
     if(status != MS_SUCCESS) return(MS_FAILURE);
 
@@ -1733,7 +1734,7 @@
     else
       tolerance = layer_tolerance * (msInchesPerUnit(lp->toleranceunits,0)/msInchesPerUnit(map->units,0));
    
-    /* open this layer */
+    msLayerClose(lp); /* reset */
     status = msLayerOpen(lp);
     if(status != MS_SUCCESS) return(MS_FAILURE);
 
@@ -1980,7 +1981,7 @@
       continue;
     }
     
-    /* open this layer */
+    msLayerClose(lp); /* reset */
     status = msLayerOpen(lp);
     if(status != MS_SUCCESS) return(MS_FAILURE);
 



More information about the mapserver-commits mailing list