 |
Flutter Engine
|
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
5#ifndef FLUTTER_SHELL_PLATFORM_EMBEDDER_EMBEDDER_STRUCT_MACROS_H_
6#define FLUTTER_SHELL_PLATFORM_EMBEDDER_EMBEDDER_STRUCT_MACROS_H_
11#define STRUCT_HAS_MEMBER(pointer, member) \
12 ((offsetof(std::remove_pointer<decltype(pointer)>::type, member) + \
13 sizeof(pointer->member) <= \
14 pointer->struct_size))
16#define SAFE_ACCESS(pointer, member, default_value) \
18 if (STRUCT_HAS_MEMBER(pointer, member)) { \
19 return pointer->member; \
21 return static_cast<decltype(pointer->member)>((default_value)); \
25#define SAFE_EXISTS(pointer, member) \
26 (SAFE_ACCESS(pointer, member, nullptr) != nullptr)
29#define SAFE_EXISTS_ONE_OF(pointer, member1, member2) \
30 (SAFE_EXISTS(pointer, member1) != SAFE_EXISTS(pointer, member2))