Browse Source

AP_Common: fixed cast warnings for ExpandingArray

c415-sdk
Andrew Tridgell 5 years ago
parent
commit
7138811a57
  1. 16
      libraries/AP_Common/AP_ExpandingArray.h

16
libraries/AP_Common/AP_ExpandingArray.h

@ -95,15 +95,23 @@ public:
T &operator[](uint16_t i) T &operator[](uint16_t i)
{ {
const uint16_t chunk_num = i / chunk_size; const uint16_t chunk_num = i / chunk_size;
const uint16_t chunk_index = (i % chunk_size) * elem_size; const uint16_t chunk_index = (i % chunk_size);
return (T &)(chunk_ptrs[chunk_num][chunk_index]); #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-align"
T *el_array = (T *)chunk_ptrs[chunk_num];
#pragma pop
return el_array[chunk_index];
} }
// allow use as an array for accessing elements. no bounds checking is performed // allow use as an array for accessing elements. no bounds checking is performed
const T &operator[](uint16_t i) const const T &operator[](uint16_t i) const
{ {
const uint16_t chunk_num = i / chunk_size; const uint16_t chunk_num = i / chunk_size;
const uint16_t chunk_index = (i % chunk_size) * elem_size; const uint16_t chunk_index = (i % chunk_size);
return (const T &)(chunk_ptrs[chunk_num][chunk_index]); #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-align"
const T *el_array = (const T *)chunk_ptrs[chunk_num];
#pragma pop
return el_array[chunk_index];
} }
}; };

Loading…
Cancel
Save