Actually try to fix null-size undefined behavior
Related to: https://github.com/harfbuzz/harfbuzz/pull/2067 https://bugzilla.mozilla.org/show_bug.cgi?id=1577584
This commit is contained in:
parent
6010feeeb5
commit
8df9aba997
|
@ -108,7 +108,7 @@ struct NullHelper
|
||||||
/* Specializations for arbitrary-content Null objects expressed in bytes. */
|
/* Specializations for arbitrary-content Null objects expressed in bytes. */
|
||||||
#define DECLARE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
#define DECLARE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
||||||
} /* Close namespace. */ \
|
} /* Close namespace. */ \
|
||||||
extern HB_INTERNAL const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::null_size]; \
|
extern HB_INTERNAL const unsigned char _hb_Null_##Namespace##_##Type[hb_null_size (Namespace::Type)]; \
|
||||||
template <> \
|
template <> \
|
||||||
struct Null<Namespace::Type> { \
|
struct Null<Namespace::Type> { \
|
||||||
static Namespace::Type const & get_null () { \
|
static Namespace::Type const & get_null () { \
|
||||||
|
@ -118,7 +118,7 @@ struct NullHelper
|
||||||
namespace Namespace { \
|
namespace Namespace { \
|
||||||
static_assert (true, "") /* Require semicolon after. */
|
static_assert (true, "") /* Require semicolon after. */
|
||||||
#define DEFINE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
#define DEFINE_NULL_NAMESPACE_BYTES(Namespace, Type) \
|
||||||
const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::null_size]
|
const unsigned char _hb_Null_##Namespace##_##Type[hb_null_size (Namespace::Type)]
|
||||||
|
|
||||||
/* Specializations for arbitrary-content Null objects expressed as struct initializer. */
|
/* Specializations for arbitrary-content Null objects expressed as struct initializer. */
|
||||||
#define DECLARE_NULL_INSTANCE(Type) \
|
#define DECLARE_NULL_INSTANCE(Type) \
|
||||||
|
|
Loading…
Reference in New Issue