瀏覽代碼

v.surf.idw: fix uninitialized ret value for 2D without column specified (#1541)

In cases of 2D points and no column specified, uninitialized value caused sometimes bogus warning and skipping points
Anna Petrasova 4 年之前
父節點
當前提交
a51da56f13
共有 1 個文件被更改,包括 7 次插入6 次删除
  1. 7 6
      vector/v.surf.idw/read_sites.c

+ 7 - 6
vector/v.surf.idw/read_sites.c

@@ -86,7 +86,7 @@ void read_sites(const char *name, const char *field_name, const char *col,
             continue;
 
         if (!with_z) {
-            int cat, ival, ret;
+            int cat;
 
             /* TODO: what to do with multiple cats */
             Vect_cat_get(Cats, field, &cat);
@@ -94,6 +94,8 @@ void read_sites(const char *name, const char *field_name, const char *col,
                 continue;
 
             if (col) {
+                int ival, ret;
+
                 if (ctype == DB_C_TYPE_INT) {
                     ret = db_CatValArray_get_value_int(&cvarr, cat, &ival);
                     dval = ival;
@@ -101,15 +103,14 @@ void read_sites(const char *name, const char *field_name, const char *col,
                 else {          /* DB_C_TYPE_DOUBLE */
                     ret = db_CatValArray_get_value_double(&cvarr, cat, &dval);
                 }
+                if (ret != DB_OK) {
+                    G_warning(_("No record for point (cat = %d)"), cat);
+                    continue;
+                }
             }
             else {
                 dval = cat;
             }
-
-            if (ret != DB_OK) {
-                G_warning(_("No record for point (cat = %d)"), cat);
-                continue;
-            }
         }
         else
             dval = Points->z[0];