Commit d207c3f7 by Benjamin Kosnik Committed by Benjamin Kosnik

fstream.tcc (filebuf::_M_init_filebuf): Don't set _M_buf_size based on macro,…

fstream.tcc (filebuf::_M_init_filebuf): Don't set _M_buf_size based on macro, instead use _M_buf_size_opt.


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.

From-SVN: r33768
parent c0916fa0
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> 2000-05-03 Phil Edwards <pme@sourceware.cygnus.com>
Felix Natter <fnatter@gmx.net> Felix Natter <fnatter@gmx.net>
......
// File based streams -*- C++ -*- // 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -42,7 +42,7 @@ namespace std ...@@ -42,7 +42,7 @@ namespace std
_M_init_filebuf(void) _M_init_filebuf(void)
{ {
_M_buf_unified = true; // Tie input to output for basic_filebuf. _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 { try {
_M_file = new __file_type(&_M_lock); _M_file = new __file_type(&_M_lock);
} }
......
// Stream buffer classes -*- C++ -*- // 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -84,9 +84,12 @@ namespace std { ...@@ -84,9 +84,12 @@ namespace std {
// leave it NULL. // leave it NULL.
char_type* _M_buf; char_type* _M_buf;
// Size of internal buffer, in bytes. // Actual size of internal buffer, in bytes.
int_type _M_buf_size; 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 // True iff _M_in_* and _M_out_* buffers should always point to
// the same place. True for fstreams, false for sstreams. // the same place. True for fstreams, false for sstreams.
bool _M_buf_unified; bool _M_buf_unified;
...@@ -284,10 +287,13 @@ namespace std { ...@@ -284,10 +287,13 @@ namespace std {
protected: protected:
basic_streambuf() basic_streambuf()
: _M_buf(NULL), _M_buf_size(0), _M_buf_unified(false), : _M_buf(NULL), _M_buf_size(0),
_M_in_cur(0), _M_in_beg(0), _M_in_end(0), _M_out_cur(0), _M_out_beg(0), _M_buf_size_opt(static_cast<int_type>(BUFSIZ * sizeof(char_type))),
_M_out_end(0), _M_mode(ios_base::openmode(0)), _M_buf_unified(false), _M_in_cur(0), _M_in_beg(0), _M_in_end(0),
_M_locale_buf(locale()), _M_locale_set(false) _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()); } { _M_fctype_buf = &use_facet<__ctype_type>(this->getloc()); }
// Get area: // Get area:
......
// 990117 bkoz test functionality of basic_filebuf for char_type == char // 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -37,7 +37,7 @@ class derived_filebuf: public std::filebuf ...@@ -37,7 +37,7 @@ class derived_filebuf: public std::filebuf
{ {
public: public:
void 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 derived_filebuf fb_01; // in
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment