]> granicus.if.org Git - esp-idf/commitdiff
esp32: Fixes apptrace down buffer management
authorAlexey Gerenkov <alexey@espressif.com>
Wed, 14 Feb 2018 15:11:28 +0000 (18:11 +0300)
committerAlexey Gerenkov <alexey@espressif.com>
Wed, 21 Feb 2018 07:13:25 +0000 (10:13 +0300)
components/app_trace/app_trace.c

index 1e792dd862681ff8250ab04ce7f5e5685596c84d..d5a56471b3b643d7b103b6362faf5cf2d088d1c3 100644 (file)
 // ALSO SEE example usage of application tracing module in 'components/app_trace/README.rst'
 
 #include <string.h>
+#include <sys/param.h>
 #include "soc/soc.h"
 #include "soc/dport_reg.h"
 #include "eri.h"
@@ -583,11 +584,11 @@ static uint8_t *esp_apptrace_trax_down_buffer_get(uint32_t *size, esp_apptrace_t
     while (1) {
         uint32_t sz = esp_apptrace_rb_read_size_get(&s_trace_buf.rb_down);
         if (sz != 0) {
-            ptr = esp_apptrace_rb_consume(&s_trace_buf.rb_down, sz > *size ? *size : sz);
+            *size = MIN(*size, sz);
+            ptr = esp_apptrace_rb_consume(&s_trace_buf.rb_down, *size);
             if (!ptr) {
                 assert(false && "Failed to consume bytes from down buffer!");
             }
-            *size = sz;
             break;
         }
         // may need to flush