aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libio/ChangeLog4
-rw-r--r--libio/streambuf.h4
2 files changed, 7 insertions, 1 deletions
diff --git a/libio/ChangeLog b/libio/ChangeLog
index 5509fa3..15095d8 100644
--- a/libio/ChangeLog
+++ b/libio/ChangeLog
@@ -1,3 +1,7 @@
+1999-04-29 Nathan Sidwell <nathan@acm.org>
+
+ * streambuf.h (ios::~ios): Use operator delete[] to remove _arrays.
+
Mon Apr 12 19:22:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
* filedoalloc.c (_POSIX_SOURCE): Remove definition.
diff --git a/libio/streambuf.h b/libio/streambuf.h
index bc734bc..d472cbe 100644
--- a/libio/streambuf.h
+++ b/libio/streambuf.h
@@ -482,7 +482,9 @@ inline ios::~ios() {
#ifndef _IO_NEW_STREAMS
if (!(_flags & (unsigned int)ios::dont_close)) delete rdbuf();
#endif
- if (_arrays) delete [] _arrays;
+ // It is safe to use naked operator delete[] as we know elements have no
+ // dtor, and g++ does not add a new[] cookie for such cases.
+ operator delete[] (_arrays);
}
} // extern "C++"
#endif /* _STREAMBUF_H */