[GRASS-SVN] r72216 - grass-addons/grass7/raster/r.stream.slope

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Feb 8 23:42:29 PST 2018


Author: mmetz
Date: 2018-02-08 23:42:29 -0800 (Thu, 08 Feb 2018)
New Revision: 72216

Modified:
   grass-addons/grass7/raster/r.stream.slope/main.c
Log:
r.stream.slope: check for NULL values in directions

Modified: grass-addons/grass7/raster/r.stream.slope/main.c
===================================================================
--- grass-addons/grass7/raster/r.stream.slope/main.c	2018-02-08 21:34:17 UTC (rev 72215)
+++ grass-addons/grass7/raster/r.stream.slope/main.c	2018-02-09 07:42:29 UTC (rev 72216)
@@ -265,8 +265,14 @@
     int d;
 
     d = dir_rows[r][c];
+    if (Rast_is_c_null_value(&d))
+	return 0;
 
-    if (NOT_IN_REGION(d))
+    d = abs(d);
+    if (d > 8)
+	G_fatal_error("Invalid direction %d", d);
+
+    if (d == 0 || NOT_IN_REGION(d))
 	return 0.;
 
     return elev_rows[r][c] - elev_rows[NR(d)][NC(d)];
@@ -281,8 +287,14 @@
     double distance;
 
     d = dir_rows[r][c];
+    if (Rast_is_c_null_value(&d))
+	return 0;
 
-    if (NOT_IN_REGION(d))
+    d = abs(d);
+    if (d > 8)
+	G_fatal_error("Invalid direction %d", d);
+
+    if (d == 0 || NOT_IN_REGION(d))
 	return 0.;
 
     northing = window.north - (r + .5) * window.ns_res;
@@ -304,8 +316,14 @@
     double distance_up, distance_down, distance;
 
     d = dir_rows[r][c];
+    if (Rast_is_c_null_value(&d))
+	return 0;
 
-    if (NOT_IN_REGION(d))
+    d = abs(d);
+    if (d > 8)
+	G_fatal_error("Invalid direction %d", d);
+
+    if (d == 0 || NOT_IN_REGION(d))
 	return 0.;
 
     for (i = 1; i < 9; ++i) {
@@ -355,8 +373,14 @@
     double distance_up, distance_down, distance;
 
     d = dir_rows[r][c];
+    if (Rast_is_c_null_value(&d))
+	return 0;
 
-    if (NOT_IN_REGION(d))
+    d = abs(d);
+    if (d > 8)
+	G_fatal_error("Invalid direction %d", d);
+
+    if (d == 0 || NOT_IN_REGION(d))
 	return 0.;
 
     for (i = 1; i < 9; ++i) {



More information about the grass-commit mailing list