32 #if defined __GNUC__ && __GNUC__ >= 6 33 # pragma GCC diagnostic ignored "-Wnull-dereference" 44 void ArnLinkHandle::init()
51 ArnLinkHandle::ArnLinkHandle()
57 ArnLinkHandle::ArnLinkHandle(
const ArnLinkHandle& other)
64 _codes = other._codes;
65 _flags = other._flags;
67 _data =
new HandleData( *other._data);
73 ArnLinkHandle::ArnLinkHandle(
const ArnLinkHandle::Flags& flags)
80 ArnLinkHandle::~ArnLinkHandle()
89 const ArnLinkHandle& ArnLinkHandle::null()
95 const ArnLinkHandle* ArnLinkHandle::nullPtr()
97 return static_cast<ArnLinkHandle*
>( arnNullptr);
101 const ArnLinkHandle::Flags& ArnLinkHandle::flags()
const 103 static Flags nullFlags;
110 ArnLinkHandle::Flags& ArnLinkHandle::flags()
112 static Flags nullFlags;
119 ArnLinkHandle& ArnLinkHandle::add( Code code,
const QVariant& value)
122 if (code == Normal)
return *
this;
125 _data =
new HandleData;
126 _data->insert( code, value);
132 bool ArnLinkHandle::has( Code code)
const 136 return _codes.testFlag( code);
140 bool ArnLinkHandle::isNull()
const 144 return (_codes == Normal) && (_flags == Flags());
148 const QVariant& ArnLinkHandle::valueRef( Code code)
const 150 static QVariant nullValue;
154 if (!_data || !has( code))
157 return _data->constFind( code).value();
bool isNullPtr(const void *ptr)