Skip to content

Commit

Permalink
ringbuf: Fix ordering of StaticRingbuffer_t
Browse files Browse the repository at this point in the history
When building on linux/host compilers (e.g., GCC), the compiler may add padding
depending on the size and order of the member types.

This commit fixes the ordering or the StaticRingbuffer_t such that it matches
the internal Ringbuffer_t. The "_Static_assert" is always enabled for all
compilers.

Closes #11726
  • Loading branch information
Dazza0 committed Jul 4, 2023
1 parent c81bc8c commit 8cb70f0
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 4 deletions.
4 changes: 2 additions & 2 deletions components/esp_ringbuf/include/freertos/ringbuf.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ typedef struct xSTATIC_RINGBUFFER {
/** @cond */ //Doxygen command to hide this structure from API Reference
size_t xDummy1[2];
UBaseType_t uxDummy2;
BaseType_t xDummy3;
void *pvDummy4[11];
void *pvDummy3[11];
BaseType_t xDummy4;
StaticList_t xDummy5[2];
void * pvDummy6;
portMUX_TYPE muxDummy;
Expand Down
2 changes: 0 additions & 2 deletions components/esp_ringbuf/ringbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,7 @@ typedef struct RingbufferDefinition {
portMUX_TYPE mux; //Spinlock required for SMP
} Ringbuffer_t;

#if __GNUC_PREREQ(4, 6)
_Static_assert(sizeof(StaticRingbuffer_t) == sizeof(Ringbuffer_t), "StaticRingbuffer_t != Ringbuffer_t");
#endif

// ------------------------------------------------ Forward Declares ---------------------------------------------------

Expand Down

0 comments on commit 8cb70f0

Please sign in to comment.