Changeset: 2b50c135ea69 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2b50c135ea69
Modified Files:
        gdk/gdk_posix.c
        gdk/gdk_private.h
        gdk/gdk_storage.c
Branch: default
Log Message:

Move file extension into separate function.


diffs (67 lines):

diff --git a/gdk/gdk_posix.c b/gdk/gdk_posix.c
--- a/gdk/gdk_posix.c
+++ b/gdk/gdk_posix.c
@@ -431,15 +431,7 @@ MT_mremap(const char *path, int mode, vo
 
                if ((fd = open(path, O_RDWR)) < 0)
                        return NULL;
-               if (fstat(fd, &stb) < 0) {
-                       /* shouldn't happen */
-                       close(fd);
-                       return NULL;
-               }
-               /* if necessary, extend the underlying file */
-               if (stb.st_size < (off_t) new_size &&
-                   (lseek(fd, new_size - 1, SEEK_SET) < 0 ||
-                    write(fd, "\0", 1) < 0)) {
+               if (GDKextendf(fd, new_size) < 0) {
                        close(fd);
                        return NULL;
                }
@@ -524,6 +516,7 @@ MT_mremap(const char *path, int mode, vo
                                        /* size not too big yet or
                                         * anonymous, try to make new
                                         * anonymous mmap and copy
+
                                         * data over */
                                        p = mmap(NULL, new_size, prot, flags,
                                                 fd, 0);
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -50,6 +50,7 @@ void BBPtrim(size_t delta);
 void BBPunshare(bat b);
 void GDKclrerr(void);
 int GDKextend(const char *fn, size_t size);
+int GDKextendf(int fd, off_t size);
 int GDKfdlocate(const char *nme, const char *mode, const char *ext);
 FILE *GDKfilelocate(const char *nme, const char *mode, const char *ext);
 char *GDKload(const char *nme, const char *ext, size_t size, size_t chunk, 
storage_t mode);
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -232,6 +232,24 @@ GDKmove(const char *dir1, const char *nm
 }
 
 int
+GDKextendf(int fd, off_t size)
+{
+       struct stat stb;
+
+       if (fstat(fd, &stb) < 0) {
+               /* shouldn't happen */
+               return -1;
+       }
+       /* if necessary, extend the underlying file */
+       if (stb.st_size < size &&
+           (lseek(fd, size - 1, SEEK_SET) < 0 ||
+            write(fd, "\0", 1) < 0)) {
+               return -1;
+       }
+       return 0;
+}
+
+int
 GDKextend(const char *fn, size_t size)
 {
        FILE *fp;
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to