Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
10ef4e2e
Commit
10ef4e2e
authored
Jul 04, 2003
by
Paolo Carlini
Committed by
Paolo Carlini
Jul 04, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
Revert the fix for libstdc++/11378. From-SVN: r68922
parent
ac2c48d7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
7 additions
and
145 deletions
+7
-145
libstdc++-v3/ChangeLog
+4
-0
libstdc++-v3/include/std/std_fstream.h
+3
-15
libstdc++-v3/testsuite/performance/filebuf_unbuf_sputn.cc
+0
-130
No files found.
libstdc++-v3/ChangeLog
View file @
10ef4e2e
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
Revert the fix for libstdc++/11378.
2003-07-04 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/11378
* include/std/std_fstream.h (xsputn): In the unbuffered case,
provided always_noconv(), issue directly _M_file.xsputn.
...
...
libstdc++-v3/include/std/std_fstream.h
View file @
10ef4e2e
...
...
@@ -397,21 +397,9 @@ namespace std
virtual
streamsize
xsputn
(
const
char_type
*
__s
,
streamsize
__n
)
{
streamsize
__ret
=
0
;
const
bool
__testout
=
this
->
_M_mode
&
ios_base
::
out
;
if
(
__testout
&&
!
_M_reading
&&
this
->
_M_buf_size
==
1
&&
__check_facet
(
_M_codecvt
).
always_noconv
())
{
__ret
=
_M_file
.
xsputn
(
reinterpret_cast
<
const
char
*>
(
__s
),
__n
);
if
(
__ret
==
__n
)
_M_writing
=
true
;
}
else
__ret
=
__streambuf_type
::
xsputn
(
__s
,
__n
);
return
__ret
;
}
_M_destroy_pback
();
return
__streambuf_type
::
xsputn
(
__s
,
__n
);
}
/**
* @if maint
...
...
libstdc++-v3/testsuite/performance/filebuf_unbuf_sputn.cc
deleted
100644 → 0
View file @
ac2c48d7
// 2003-07-04 Petur Runolfsson <peturr02@ru.is>
//
// Copyright (C) 2003 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
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
#include <cstdio>
#include <cstring>
#include <fstream>
#include <iostream>
// Contributed as part of libstdc++/11378.
int
main
(
int
argc
,
char
**
argv
)
{
using
namespace
std
;
if
(
argc
<
3
)
{
cerr
<<
"Usage: "
<<
argv
[
0
]
<<
" type iters [chunksize]
\n
"
;
return
-
1
;
}
enum
{
type_stdio
,
type_iostream
}
type
;
if
(
!
strcmp
(
argv
[
1
],
"stdio"
))
type
=
type_stdio
;
else
if
(
!
strcmp
(
argv
[
1
],
"iostream"
))
type
=
type_iostream
;
else
{
cerr
<<
"Type must be one of {stdio, iostream}
\n
"
;
return
-
1
;
}
int
iters
=
atoi
(
argv
[
2
]);
if
(
iters
<
1
)
{
cerr
<<
"Iters must be an positive integer
\n
"
;
return
-
1
;
}
int
chunksize
=
1
;
if
(
argc
>
3
)
chunksize
=
atoi
(
argv
[
3
]);
if
(
iters
<
1
)
{
cerr
<<
"Chunksize must be an positive integer
\n
"
;
return
-
1
;
}
char
*
chunk
=
0
;
if
(
chunksize
>
1
)
{
chunk
=
new
char
[
chunksize
];
memset
(
chunk
,
'a'
,
chunksize
);
}
switch
(
type
)
{
case
type_stdio
:
{
FILE
*
f
=
fopen
(
"tmp"
,
"w"
);
setvbuf
(
f
,
0
,
_IONBF
,
0
);
if
(
chunksize
>
1
)
{
for
(
int
i
=
0
;
i
<
iters
;
++
i
)
fwrite_unlocked
(
chunk
,
1
,
chunksize
,
f
);
}
else
{
for
(
int
i
=
0
;
i
<
iters
;
++
i
)
putc_unlocked
(
'a'
,
f
);
}
fclose
(
f
);
break
;
}
case
type_iostream
:
{
filebuf
f
;
f
.
pubsetbuf
(
0
,
0
);
f
.
open
(
"tmp"
,
ios_base
::
out
);
if
(
chunksize
>
1
)
{
for
(
int
i
=
0
;
i
<
iters
;
++
i
)
f
.
sputn
(
chunk
,
chunksize
);
}
else
{
for
(
int
i
=
0
;
i
<
iters
;
++
i
)
f
.
sputc
(
'a'
);
}
f
.
close
();
break
;
}
}
delete
[]
chunk
;
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment