From cf9c4950bcec98c7914b201763fed2aed1e14d76 Mon Sep 17 00:00:00 2001 From: "mostang.com!davidm" <mostang.com!davidm> Date: Tue, 11 Mar 2003 01:11:18 +0000 Subject: [PATCH] Add include of "tdep.h". (unwi_dyn_remote_find_proc_info): Maintain as->dyn_info_list_addr as a cache of the most recently obtained dyn-info-list address. (Logical change 1.61) --- src/dyn-remote.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/dyn-remote.c b/src/dyn-remote.c index 023548cb..25b4c3eb 100644 --- a/src/dyn-remote.c +++ b/src/dyn-remote.c @@ -27,6 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include <stdlib.h> #include "internal.h" +#include "tdep.h" static void free_regions (unw_dyn_region_info_t *region) @@ -200,8 +201,15 @@ unwi_dyn_remote_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_dyn_info_t *di = NULL; int ret; - if ((*a->get_dyn_info_list_addr) (as, &dyn_list_addr, arg) < 0) - return -UNW_ENOINFO; + if (as->dyn_info_list_addr) + dyn_list_addr = as->dyn_info_list_addr; + else + { + if ((*a->get_dyn_info_list_addr) (as, &dyn_list_addr, arg) < 0) + return -UNW_ENOINFO; + if (as->caching_policy != UNW_CACHE_NONE) + as->dyn_info_list_addr = dyn_list_addr; + } do {