mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-02 08:09:27 +01:00
(ia64_find_save_locs): Only call ia64_fetch_proc_info() when we really
have to (i.e., if we don't have cached info). Otherwise, the unnecessary calls cause a performance regression. (Logical change 1.102)
This commit is contained in:
parent
01b02dde89
commit
d0fddf5de8
1 changed files with 6 additions and 4 deletions
|
@ -496,16 +496,15 @@ ia64_find_save_locs (struct cursor *c)
|
|||
sigset_t saved_sigmask;
|
||||
int ret = 0;
|
||||
|
||||
ret = ia64_fetch_proc_info (c, c->ip, 1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
cache = get_script_cache (c->as, &saved_sigmask);
|
||||
{
|
||||
if (c->as->caching_policy == UNW_CACHE_NONE)
|
||||
{
|
||||
struct ia64_script tmp_script;
|
||||
|
||||
if ((ret = ia64_fetch_proc_info (c, c->ip, 1)) < 0)
|
||||
goto out;
|
||||
|
||||
script = &tmp_script;
|
||||
script->ip = c->ip;
|
||||
script->hint = 0;
|
||||
|
@ -519,6 +518,9 @@ ia64_find_save_locs (struct cursor *c)
|
|||
__FUNCTION__, (long) c->ip, script ? "hit" : "missed");
|
||||
if (!script)
|
||||
{
|
||||
if ((ret = ia64_fetch_proc_info (c, c->ip, 1)) < 0)
|
||||
goto out;
|
||||
|
||||
script = script_new (cache, c->ip);
|
||||
if (!script)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue