aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/target/espressif/esp32_apptrace.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/target/espressif/esp32_apptrace.c b/src/target/espressif/esp32_apptrace.c
index dfeb794..291503e 100644
--- a/src/target/espressif/esp32_apptrace.c
+++ b/src/target/espressif/esp32_apptrace.c
@@ -356,18 +356,14 @@ static int esp32_apptrace_ready_block_put(struct esp32_apptrace_cmd_ctx *ctx, st
static struct esp32_apptrace_block *esp32_apptrace_ready_block_get(struct esp32_apptrace_cmd_ctx *ctx)
{
- struct esp32_apptrace_block *block = NULL;
+ if (list_empty(&ctx->ready_trace_blocks))
+ return NULL;
- if (!list_empty(&ctx->ready_trace_blocks)) {
- struct list_head *head = &ctx->ready_trace_blocks;
- struct list_head *tmp, *pos;
+ struct esp32_apptrace_block *block =
+ list_last_entry(&ctx->ready_trace_blocks, struct esp32_apptrace_block, node);
- list_for_each_safe(pos, tmp, head) {
- block = list_entry(pos, struct esp32_apptrace_block, node);
- }
- /* remove it from ready list */
- list_del(&block->node);
- }
+ /* remove it from ready list */
+ list_del(&block->node);
return block;
}