OSDN Git Service

PR 5990
authorian <ian>
Fri, 25 Jul 2008 04:25:49 +0000 (04:25 +0000)
committerian <ian>
Fri, 25 Jul 2008 04:25:49 +0000 (04:25 +0000)
commitff70592fc8e378e230d3bb0f0825d26dfefbb210
tree2f7ea12ef4b59822f0730042fcb5583b89bfa176
parenta07692d9f8e7308401d82e11640989394635f75d
PR 5990
* descriptors.cc: New file.
* descriptors.h: New file.
* gold-threads.h (class Hold_optional_lock): New class.
* fileread.cc: Include "descriptors.h".
(File_read::~File_read): Release descriptor rather than closing
it.
(File_read::open) [file]: Call open_descriptor rather than open.
Set is_descriptor_opened_.
(File_read::open) [memory]: Assert that descriptor is not open.
(File_read::reopen_descriptor): New function.
(File_read::release): Release descriptor.
(File_read::do_read): Make non-const.  Reopen descriptor.
(File_read::read): Make non-const.
(File_read::make_view): Reopen descriptor.
(File_read::do_readv): Likewise.
* fileread.h (class File_read): Add is_descriptor_opened_ field.
Update declarations.
* layout.cc: Include "descriptors.h".
(Layout::create_build_id): Use open_descriptor rather than open.
* output.cc: Include "descriptors.h".
(Output_file::open): Use open_descriptor rather than open.
* archive.cc (Archive::const_iterator): Change Archive to be
non-const.
(Archive::begin, Archive::end): Make non-const.
(Archive::count_members): Likewise.
* archive.h (class Archive): Update declarations.
* object.h (Object::read): Make non-const.
* Makefile.am (CCFILES): Add descriptors.cc.
(HFILES): Add descriptors.h.
* Makefile.in: Rebuild.
13 files changed:
gold/ChangeLog
gold/Makefile.am
gold/Makefile.in
gold/archive.cc
gold/archive.h
gold/descriptors.cc [new file with mode: 0644]
gold/descriptors.h [new file with mode: 0644]
gold/fileread.cc
gold/fileread.h
gold/gold-threads.h
gold/layout.cc
gold/object.h
gold/output.cc