OSDN Git Service

* fhandler_tape.cc (fhandler_dev_tape::open): Fix memory allocation.
authorcorinna <corinna>
Tue, 31 Oct 2000 19:59:16 +0000 (19:59 +0000)
committercorinna <corinna>
Tue, 31 Oct 2000 19:59:16 +0000 (19:59 +0000)
        Use Cygwin heap instead of user heap.
        (fhandler_dev_tape::ioctl): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_tape.cc

index cb2bc04..0a291e7 100644 (file)
@@ -1,3 +1,9 @@
+Tue Oct 31 20:56:00 2000  Corinna Vinschen <corinna@vinschen.de>
+
+       * fhandler_tape.cc (fhandler_dev_tape::open): Fix memory allocation.
+       Use Cygwin heap instead of user heap.
+       (fhandler_dev_tape::ioctl): Ditto.
+
 Tue Oct 31 12:00:06 2000  Christopher Faylor <cgf@cygnus.com>
 
        * pinfo.cc (enum_init): Don't suffer silently if we can't load the
index 279c7fc..1dd15e5 100644 (file)
@@ -16,6 +16,7 @@ details. */
 #include <unistd.h>
 
 #include <sys/mtio.h>
+#include "cygheap.h"
 #include "cygerrno.h"
 #include "fhandler.h"
 #include "path.h"
@@ -88,7 +89,7 @@ fhandler_dev_tape::open (const char *path, int flags, mode_t)
        varblkop = get.mt_dsreg == 0;
 
       if (devbufsiz > 1L)
-       devbuf = new char [ devbufsiz ];
+       devbuf = (char *) cmalloc (HEAP_BUF, devbufsiz);
 
       /* The following rewind in position 0 solves a problem which appears
        * in case of multi volume archives: The last ReadFile on first medium
@@ -348,7 +349,7 @@ fhandler_dev_tape::ioctl (unsigned int cmd, void *buf)
                      size = get.mt_maxblksize;
                      ret = NO_ERROR;
                    }
-                 char *buf = new char [ size ];
+                 char *buf = (char *) cmalloc (HEAP_BUF, size);
                  if (!buf)
                    {
                      ret = ERROR_OUTOFMEMORY;
@@ -358,7 +359,7 @@ fhandler_dev_tape::ioctl (unsigned int cmd, void *buf)
                    {
                      memcpy(buf,devbuf + devbufstart, devbufend - devbufstart);
                      devbufend -= devbufstart;
-                     delete [] devbuf;
+                     cfree (devbuf);
                    }
                  else
                    devbufend = 0;