[OffsetTo] Try catching nullable offsets to unbounded types
Doesn't catch all cases; if type is not fully defined at OffsetTo time, we can't know. Fixes https://github.com/harfbuzz/harfbuzz/issues/1300 to the best we can do.
This commit is contained in:
parent
1327d8e3df
commit
9843f07658
|
@ -304,6 +304,10 @@ struct _hb_has_null<Type, true>
|
||||||
template <typename Type, typename OffsetType, bool has_null=true>
|
template <typename Type, typename OffsetType, bool has_null=true>
|
||||||
struct OffsetTo : Offset<OffsetType, has_null>
|
struct OffsetTo : Offset<OffsetType, has_null>
|
||||||
{
|
{
|
||||||
|
// Make sure Type is not unbounded; works only for types that are fully defined at OffsetTo time.
|
||||||
|
static_assert (has_null == false ||
|
||||||
|
(hb_has_null_size (Type) || !hb_has_min_size (Type)), "");
|
||||||
|
|
||||||
HB_DELETE_COPY_ASSIGN (OffsetTo);
|
HB_DELETE_COPY_ASSIGN (OffsetTo);
|
||||||
OffsetTo () = default;
|
OffsetTo () = default;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue