Remove two more uses of make_cleanup_close
This removes two more uses of make_cleanup_close, replacing them with relatively straightforward uses of scoped_fd. Tested by the buildbot. gdb/ChangeLog 2018-06-09 Tom Tromey <tom@tromey.com> * source.c (reverse_search_command, forward_search_command): Use scoped_fd.
This commit is contained in:
parent
191cca6383
commit
77ad739445
@ -1,3 +1,8 @@
|
|||||||
|
2018-06-09 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* source.c (reverse_search_command, forward_search_command): Use
|
||||||
|
scoped_fd.
|
||||||
|
|
||||||
2018-06-09 Tom Tromey <tom@tromey.com>
|
2018-06-09 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* serial.c (serial_ops_p): Remove typedef. Don't declare VEC.
|
* serial.c (serial_ops_p): Remove typedef. Don't declare VEC.
|
||||||
|
30
gdb/source.c
30
gdb/source.c
@ -1539,10 +1539,8 @@ static void
|
|||||||
forward_search_command (const char *regex, int from_tty)
|
forward_search_command (const char *regex, int from_tty)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
int desc;
|
|
||||||
int line;
|
int line;
|
||||||
char *msg;
|
char *msg;
|
||||||
struct cleanup *cleanups;
|
|
||||||
|
|
||||||
line = last_line_listed + 1;
|
line = last_line_listed + 1;
|
||||||
|
|
||||||
@ -1553,22 +1551,21 @@ forward_search_command (const char *regex, int from_tty)
|
|||||||
if (current_source_symtab == 0)
|
if (current_source_symtab == 0)
|
||||||
select_source_symtab (0);
|
select_source_symtab (0);
|
||||||
|
|
||||||
desc = open_source_file (current_source_symtab);
|
scoped_fd desc (open_source_file (current_source_symtab));
|
||||||
if (desc < 0)
|
if (desc.get () < 0)
|
||||||
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
||||||
cleanups = make_cleanup_close (desc);
|
|
||||||
|
|
||||||
if (current_source_symtab->line_charpos == 0)
|
if (current_source_symtab->line_charpos == 0)
|
||||||
find_source_lines (current_source_symtab, desc);
|
find_source_lines (current_source_symtab, desc.get ());
|
||||||
|
|
||||||
if (line < 1 || line > current_source_symtab->nlines)
|
if (line < 1 || line > current_source_symtab->nlines)
|
||||||
error (_("Expression not found"));
|
error (_("Expression not found"));
|
||||||
|
|
||||||
if (lseek (desc, current_source_symtab->line_charpos[line - 1], 0) < 0)
|
if (lseek (desc.get (), current_source_symtab->line_charpos[line - 1], 0)
|
||||||
|
< 0)
|
||||||
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
||||||
|
|
||||||
discard_cleanups (cleanups);
|
gdb_file_up stream (fdopen (desc.release (), FDOPEN_MODE));
|
||||||
gdb_file_up stream (fdopen (desc, FDOPEN_MODE));
|
|
||||||
clearerr (stream.get ());
|
clearerr (stream.get ());
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
@ -1624,10 +1621,8 @@ static void
|
|||||||
reverse_search_command (const char *regex, int from_tty)
|
reverse_search_command (const char *regex, int from_tty)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
int desc;
|
|
||||||
int line;
|
int line;
|
||||||
char *msg;
|
char *msg;
|
||||||
struct cleanup *cleanups;
|
|
||||||
|
|
||||||
line = last_line_listed - 1;
|
line = last_line_listed - 1;
|
||||||
|
|
||||||
@ -1638,22 +1633,21 @@ reverse_search_command (const char *regex, int from_tty)
|
|||||||
if (current_source_symtab == 0)
|
if (current_source_symtab == 0)
|
||||||
select_source_symtab (0);
|
select_source_symtab (0);
|
||||||
|
|
||||||
desc = open_source_file (current_source_symtab);
|
scoped_fd desc (open_source_file (current_source_symtab));
|
||||||
if (desc < 0)
|
if (desc.get () < 0)
|
||||||
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
||||||
cleanups = make_cleanup_close (desc);
|
|
||||||
|
|
||||||
if (current_source_symtab->line_charpos == 0)
|
if (current_source_symtab->line_charpos == 0)
|
||||||
find_source_lines (current_source_symtab, desc);
|
find_source_lines (current_source_symtab, desc.get ());
|
||||||
|
|
||||||
if (line < 1 || line > current_source_symtab->nlines)
|
if (line < 1 || line > current_source_symtab->nlines)
|
||||||
error (_("Expression not found"));
|
error (_("Expression not found"));
|
||||||
|
|
||||||
if (lseek (desc, current_source_symtab->line_charpos[line - 1], 0) < 0)
|
if (lseek (desc.get (), current_source_symtab->line_charpos[line - 1], 0)
|
||||||
|
< 0)
|
||||||
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
perror_with_name (symtab_to_filename_for_display (current_source_symtab));
|
||||||
|
|
||||||
discard_cleanups (cleanups);
|
gdb_file_up stream (fdopen (desc.release (), FDOPEN_MODE));
|
||||||
gdb_file_up stream (fdopen (desc, FDOPEN_MODE));
|
|
||||||
clearerr (stream.get ());
|
clearerr (stream.get ());
|
||||||
while (line > 1)
|
while (line > 1)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user