OSDN Git Service

2000-05-08 Benjamin Kosnik <bkoz@cygnus.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 May 2000 17:23:37 +0000 (17:23 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 May 2000 17:23:37 +0000 (17:23 +0000)
* bits/fstream.tcc (filebuf::_M_init_filebuf): Don't set
_M_buf_size based on macro, instead use _M_buf_size_opt.
* bits/std_streambuf.h (basic_streambuf): Add _M_buf_size_opt.
(basic_streambuf()): Set _M_buf_size_opt.
* testsuite/27_io/filebuf.cc (filebuf): Use _M_buf_size_opt
instead of _M_buf_size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33768 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/bits/fstream.tcc
libstdc++-v3/bits/std_streambuf.h
libstdc++-v3/testsuite/27_io/filebuf.cc

index 00d3c92..2b5b323 100644 (file)
@@ -1,3 +1,12 @@
+2000-05-08  Benjamin Kosnik  <bkoz@cygnus.com>
+
+       * bits/fstream.tcc (filebuf::_M_init_filebuf): Don't set
+       _M_buf_size based on macro, instead use _M_buf_size_opt.
+       * bits/std_streambuf.h (basic_streambuf): Add _M_buf_size_opt.
+       (basic_streambuf()): Set _M_buf_size_opt.
+       * testsuite/27_io/filebuf.cc (filebuf): Use _M_buf_size_opt
+       instead of _M_buf_size.
+
 2000-05-03  Phil Edwards  <pme@sourceware.cygnus.com>
             Felix Natter <fnatter@gmx.net>
 
index d2d8c26..44cfb19 100644 (file)
@@ -1,6 +1,6 @@
 // File based streams -*- C++ -*-
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -42,7 +42,7 @@ namespace std
     _M_init_filebuf(void)
     {
       _M_buf_unified = true; // Tie input to output for basic_filebuf.
-      _M_buf_size = static_cast<int_type>(BUFSIZ * sizeof(char_type)); 
+      _M_buf_size = _M_buf_size_opt;
       try {
        _M_file = new __file_type(&_M_lock);
       }
index 6aa9204..84699bf 100644 (file)
@@ -1,6 +1,6 @@
 // Stream buffer classes -*- C++ -*-
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -84,9 +84,12 @@ namespace std {
       // leave it NULL.
       char_type*               _M_buf;         
 
-      // Size of internal buffer, in bytes.
+      // Actual size of internal buffer, in bytes.
       int_type                 _M_buf_size;
 
+      // Optimal or preferred size of internal buffer, in bytes.
+      int_type                 _M_buf_size_opt;
+
       // True iff _M_in_* and _M_out_* buffers should always point to
       // the same place.  True for fstreams, false for sstreams.
       bool                     _M_buf_unified; 
@@ -284,10 +287,13 @@ namespace std {
 
     protected:
       basic_streambuf()
-      : _M_buf(NULL), _M_buf_size(0), _M_buf_unified(false),
-       _M_in_cur(0), _M_in_beg(0), _M_in_end(0), _M_out_cur(0), _M_out_beg(0),
-       _M_out_end(0), _M_mode(ios_base::openmode(0)), 
-       _M_locale_buf(locale()), _M_locale_set(false) 
+      : _M_buf(NULL), _M_buf_size(0), 
+       _M_buf_size_opt(static_cast<int_type>(BUFSIZ * sizeof(char_type))),
+       _M_buf_unified(false), _M_in_cur(0), _M_in_beg(0), _M_in_end(0), 
+       _M_out_cur(0), _M_out_beg(0), _M_out_end(0), 
+       _M_mode(ios_base::openmode(0)), _M_locale_buf(locale()), 
+       _M_locale_set(false) 
+
       { _M_fctype_buf =  &use_facet<__ctype_type>(this->getloc()); }
 
       // Get area:
index 830e0b1..586388e 100644 (file)
@@ -1,6 +1,6 @@
 // 990117 bkoz test functionality of basic_filebuf for char_type == char
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -37,7 +37,7 @@ class derived_filebuf: public std::filebuf
 {
  public:
   void
-  set_size(int_type __size) { _M_buf_size = __size; }
+  set_size(int_type __size) { _M_buf_size_opt = __size; }
 };
 
 derived_filebuf fb_01; // in