7 Commits

Author SHA1 Message Date
Rich Felker
dc059f03e8 always add memory streams to stdio open file list
per interpretation for austin group issue #626, fflush(0) and exit()
must block waiting for a lock if another thread has locked a memory
stream with flockfile. this adds some otherwise-unnecessary
synchronization cost to use of memory streams, but there was already a
synchronization cost calling malloc anyway.

previously the stream was only added to the open file list in
single-threaded programs, so that upon subsequent call to
pthread_create, locking could be turned on for the stream.
2012-11-09 14:26:25 -05:00
Rich Felker
835f9f950e clean up stdio_impl.h
this header evolved to facilitate the extremely lazy practice of
omitting explicit includes of the necessary headers in individual
stdio source files; not only was this sloppy, but it also increased
build time.

now, stdio_impl.h is only including the headers it needs for its own
use; any further headers needed by source files are included directly
where needed.
2012-11-08 16:39:41 -05:00
Rich Felker
7ee3dcb3c6 memstreams: fix incorrect handling of file pos > current size
the addition is safe and cannot overflow because both operands are
positive when considered as signed quantities.
2011-09-04 10:29:04 -04:00
Rich Felker
c88f36f556 optimize seek function for memory streams 2011-09-04 00:08:32 -04:00
Rich Felker
32d67e938e fix twos complement overflow bug in mem streams boundary check
the expression -off is not safe in case off is the most-negative
value. instead apply - to base which is known to be non-negative and
bounded within sanity.
2011-09-04 00:06:01 -04:00
Rich Felker
1e69376435 fix some length calculations in memory streams 2011-09-03 20:19:51 -04:00
Rich Felker
b158b32a44 implement open_memstream
this is the first attempt, and may have bugs. only minimal testing has
been performed.
2011-09-03 00:45:21 -04:00