Bernhard
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Fri, 1 Jun 2007 17:35:46 +0000 (17:35 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Fri, 1 Jun 2007 17:35:46 +0000 (17:35 +0000)
- fill the file with DNAN and add the remaining data in after the fact ...

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1098 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/rrd_open.c
src/rrd_resize.c

index 7812da1..e839184 100644 (file)
@@ -253,6 +253,7 @@ rrd_file_t *rrd_open(
     }
     rrd_file->file_start = data;
     if (rdwr & RRD_CREAT) {
     }
     rrd_file->file_start = data;
     if (rdwr & RRD_CREAT) {
+        memset(data, DNAN, newfile_size - 1);
         goto out_done;
     }
 #endif
         goto out_done;
     }
 #endif
index 55ced9e..b242b48 100644 (file)
@@ -169,12 +169,17 @@ int rrd_resize(
             rrd_write(rrd_out_file, &buffer, sizeof(rrd_value_t) * 1);
             l--;
         }
             rrd_write(rrd_out_file, &buffer, sizeof(rrd_value_t) * 1);
             l--;
         }
+#ifndef HAVE_MMAP
         buffer = DNAN;
         l = rrdnew.stat_head->ds_cnt * modify;
         while (l > 0) {
             rrd_write(rrd_out_file, &buffer, sizeof(rrd_value_t) * 1);
             l--;
         }
         buffer = DNAN;
         l = rrdnew.stat_head->ds_cnt * modify;
         while (l > 0) {
             rrd_write(rrd_out_file, &buffer, sizeof(rrd_value_t) * 1);
             l--;
         }
+#else
+       /* for the mmap case, we did already fill the whole new file with DNAN
+        * before we copied the old values, so nothing to do here.  */
+#endif
     } else {
         /* Removing rows. Normally this would be just after the cursor
          ** however this may also mean that we wrap to the beginning of
     } else {
         /* Removing rows. Normally this would be just after the cursor
          ** however this may also mean that we wrap to the beginning of