Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [PATCH 04/16] perf tools: Add a thread stack for synthesizing call chains | Date | Fri, 24 Oct 2014 14:41:02 +0900 |
| |
On Thu, 23 Oct 2014 13:45:12 +0300, Adrian Hunter wrote: > +static void thread_stack__pop(struct thread_stack *ts, u64 ret_addr) > +{ > + if (!ts->cnt) > + return; > + > + if (ts->stack[ts->cnt - 1].ret_addr == ret_addr) { > + ts->cnt -= 1; > + } else { > + size_t i = ts->cnt - 1; > + > + while (i--) { > + if (ts->stack[i].ret_addr == ret_addr) { > + ts->cnt = i; > + return; > + } > + } > + } > +}
Why not making it a single loop like:
int i;
for (i = ts->cnt - 1; i >= 0; i--) { if (ts->stack[i].ret_addr == ret_addr) { ts->cnt = i; return; } }
Thanks, Namhyung
| |