[HB] Fix more casts
This commit is contained in:
parent
9d2e02db74
commit
8b53461304
@ -65,7 +65,7 @@ template <typename Type>
|
|||||||
struct Null
|
struct Null
|
||||||
{
|
{
|
||||||
ASSERT_STATIC (sizeof (Type) <= sizeof (NullPool));
|
ASSERT_STATIC (sizeof (Type) <= sizeof (NullPool));
|
||||||
static inline const Type &get () { return *(const Type*)NullPool; }
|
static inline const Type &get () { return CONST_CAST (Type, *NullPool, 0); }
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Specializaiton for arbitrary-content arbitrary-sized Null objects. */
|
/* Specializaiton for arbitrary-content arbitrary-sized Null objects. */
|
||||||
@ -74,7 +74,7 @@ static const char _Null##Type[size] = data; \
|
|||||||
template <> \
|
template <> \
|
||||||
struct Null <Type> \
|
struct Null <Type> \
|
||||||
{ \
|
{ \
|
||||||
static inline const Type &get () { return *(const Type*)_Null##Type; } \
|
static inline const Type &get () { return CONST_CAST (Type, *_Null##Type, 0); } \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Accessor macro. */
|
/* Accessor macro. */
|
||||||
@ -92,14 +92,14 @@ struct Null <Type> \
|
|||||||
static inline const Type& get_for_data (const char *data) \
|
static inline const Type& get_for_data (const char *data) \
|
||||||
{ \
|
{ \
|
||||||
if (HB_UNLIKELY (data == NULL)) return Null(Type); \
|
if (HB_UNLIKELY (data == NULL)) return Null(Type); \
|
||||||
return *(const Type*)data; \
|
return CONST_CAST (Type, *data, 0); \
|
||||||
}
|
}
|
||||||
/* Like get_for_data(), but checks major version first. */
|
/* Like get_for_data(), but checks major version first. */
|
||||||
#define STATIC_DEFINE_GET_FOR_DATA_CHECK_MAJOR_VERSION(Type, MajorMin, MajorMax) \
|
#define STATIC_DEFINE_GET_FOR_DATA_CHECK_MAJOR_VERSION(Type, MajorMin, MajorMax) \
|
||||||
static inline const Type& get_for_data (const char *data) \
|
static inline const Type& get_for_data (const char *data) \
|
||||||
{ \
|
{ \
|
||||||
if (HB_UNLIKELY (data == NULL)) return Null(Type); \
|
if (HB_UNLIKELY (data == NULL)) return Null(Type); \
|
||||||
const Type& t = *(const Type*)data; \
|
const Type& t = CONST_CAST (Type, *data, 0); \
|
||||||
if (HB_UNLIKELY (t.version.major < MajorMin || t.version.major > MajorMax)) return Null(Type); \
|
if (HB_UNLIKELY (t.version.major < MajorMin || t.version.major > MajorMax)) return Null(Type); \
|
||||||
return t; \
|
return t; \
|
||||||
}
|
}
|
||||||
@ -283,7 +283,7 @@ struct Sanitizer
|
|||||||
fprintf (stderr, "Sanitizer %p passed first round with %d edits; going a second round %s\n",
|
fprintf (stderr, "Sanitizer %p passed first round with %d edits; going a second round %s\n",
|
||||||
blob, context.edit_count, __PRETTY_FUNCTION__);
|
blob, context.edit_count, __PRETTY_FUNCTION__);
|
||||||
#endif
|
#endif
|
||||||
/* sanitize again to ensure not toe-stepping */
|
/* sanitize again to ensure no toe-stepping */
|
||||||
context.edit_count = 0;
|
context.edit_count = 0;
|
||||||
sane = t->sanitize (SANITIZE_ARG_INIT);
|
sane = t->sanitize (SANITIZE_ARG_INIT);
|
||||||
if (context.edit_count) {
|
if (context.edit_count) {
|
||||||
|
Loading…
Reference in New Issue
Block a user