From: devans Date: Thu, 17 Apr 2008 17:43:57 +0000 (+0000) Subject: * source.c (find_and_open_source): Add some comments clarifying X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3006d966ac7687a3e372686821da682d8aa21f4d;p=pf3gnuchains%2Fpf3gnuchains3x.git * source.c (find_and_open_source): Add some comments clarifying handling of FULLNAME argument. Make static. Remove pointless xstrdup/xfree. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 86a4cbe59a..28d7ae58a3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2008-04-17 Doug Evans + + * source.c (find_and_open_source): Add some comments clarifying + handling of FULLNAME argument. Make static. Remove pointless + xstrdup/xfree. + 2008-04-17 Pedro Alves * inf-loop.c (inferior_event_handler): Also run the intermediate diff --git a/gdb/source.c b/gdb/source.c index 2c69547da1..ceca38bd10 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -927,15 +927,19 @@ rewrite_source_path (const char *path) DIRNAME is the compilation directory of a particular source file. Only some debug formats provide this info. FULLNAME can be the last known absolute path to the file in question. + Space for the path must have been malloc'd. If a path substitution + is applied we free the old value and set a new one. On Success A valid file descriptor is returned. ( the return value is positive ) FULLNAME is set to the absolute path to the file just opened. + The caller is responsible for freeing FULLNAME. On Failure An invalid file descriptor is returned. ( the return value is negative ) FULLNAME is set to NULL. */ -int + +static int find_and_open_source (struct objfile *objfile, const char *filename, const char *dirname, @@ -1022,13 +1026,6 @@ find_and_open_source (struct objfile *objfile, result = openp (path, OPF_SEARCH_IN_PATH, p, OPEN_MODE, 0, fullname); } - if (result >= 0) - { - char *tmp_fullname; - tmp_fullname = *fullname; - *fullname = xstrdup (tmp_fullname); - xfree (tmp_fullname); - } return result; }