diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2015-07-08 11:40:35 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2015-07-08 11:40:35 -0400 |
commit | ef3f321b39c3e31fc49f034257a944d515af182a (patch) | |
tree | 2e5715e2ac8d9a6b01c21e02516f0f00d5718a07 /gdb/progspace.c | |
parent | 0560c645c02eba2828a053039dcfdf676cdd1d00 (diff) | |
download | gdb-ef3f321b39c3e31fc49f034257a944d515af182a.zip gdb-ef3f321b39c3e31fc49f034257a944d515af182a.tar.gz gdb-ef3f321b39c3e31fc49f034257a944d515af182a.tar.bz2 |
Revert "Delete program spaces directly when removing inferiors"
Reverted, since it causes a build failure. It turns out that
delete_inferior_silent wasn't actually unused.
This reverts commit 0560c645c02eba2828a053039dcfdf676cdd1d00.
Diffstat (limited to 'gdb/progspace.c')
-rw-r--r-- | gdb/progspace.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/gdb/progspace.c b/gdb/progspace.c index a8f5ea0..1c0a254 100644 --- a/gdb/progspace.c +++ b/gdb/progspace.c @@ -235,8 +235,8 @@ save_current_program_space (void) /* Returns true iff there's no inferior bound to PSPACE. */ -int -program_space_empty_p (struct program_space *pspace) +static int +pspace_empty_p (struct program_space *pspace) { if (find_inferior_for_program_space (pspace) != NULL) return 0; @@ -244,31 +244,30 @@ program_space_empty_p (struct program_space *pspace) return 1; } -/* Remove a program space from the program spaces list and release it. It is - an error to call this function while PSPACE is the current program space. */ +/* Prune away automatically added program spaces that aren't required + anymore. */ void -delete_program_space (struct program_space *pspace) +prune_program_spaces (void) { struct program_space *ss, **ss_link; - gdb_assert(pspace != NULL); - gdb_assert(pspace != current_program_space); + struct program_space *current = current_program_space; ss = program_spaces; ss_link = &program_spaces; - while (ss != NULL) + while (ss) { - if (ss == pspace) + if (ss == current || !pspace_empty_p (ss)) { - *ss_link = ss->next; - break; + ss_link = &ss->next; + ss = *ss_link; + continue; } - ss_link = &ss->next; + *ss_link = ss->next; + release_program_space (ss); ss = *ss_link; } - - release_program_space (pspace); } /* Prints the list of program spaces and their details on UIOUT. If |