libcamera: controls: Fix strict aliasing violation
gcc 8.3.0 for ARM complains about strict aliasing violations: ../../src/libcamera/controls.cpp: In member function ‘void libcamera::ControlValue::release()’: ../../src/libcamera/controls.cpp:111:13: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] delete[] *reinterpret_cast<char **>(&storage_); Fix it and simplify the code at the same time. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
@@ -160,7 +160,10 @@ private:
|
||||
ControlType type_ : 8;
|
||||
bool isArray_ : 1;
|
||||
std::size_t numElements_ : 16;
|
||||
uint64_t storage_;
|
||||
union {
|
||||
uint64_t value_;
|
||||
void *storage_;
|
||||
};
|
||||
|
||||
void release();
|
||||
void set(ControlType type, bool isArray, const void *data,
|
||||
|
||||
Reference in New Issue
Block a user