]> git.ipfire.org Git - thirdparty/glibc.git/commit - ChangeLog
Separate ftell from fseek logic and avoid modifying FILE data (#16532)
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Tue, 4 Mar 2014 02:15:58 +0000 (07:45 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Tue, 4 Mar 2014 02:15:58 +0000 (07:45 +0530)
commit000232b9bcbf194f1e5fd0ff380000f341505405
tree252e22a971caa7021ae130c080ccb161daba33cc
parent116f4d1ad64a061488b29ef89f1a60f5e8c5963b
Separate ftell from fseek logic and avoid modifying FILE data (#16532)

ftell semantics are distinct from fseek(SEEK_CUR) especially when it
is called on a file handler that is not yet active.  Due to this
caveat, much care needs to be taken while modifying the handler data
and hence, this first iteration on separating out ftell focusses on
maintaining handler data integrity at all times while it figures out
the current stream offset.  The result is that it makes a syscall for
every offset request.

There is scope for optimizing this by caching offsets when we know
that the handler is active.  A simple way to find out is when the
buffers have data.  It is not so simple to find this out when the
buffer is empty without adding some kind of flag.
ChangeLog
NEWS
libio/Makefile
libio/fileops.c
libio/libioP.h
libio/tst-ftell-active-handler.c [new file with mode: 0644]
libio/wfileops.c