Try at fixing multiple-definition of NullPool

If we don't have visibility, make NullPool static.
This commit is contained in:
Behdad Esfahbod 2018-02-11 19:34:05 -06:00
parent 3d421ce307
commit cd32177a32
3 changed files with 10 additions and 4 deletions

View File

@ -134,7 +134,13 @@ static inline Type& StructAfter(TObject &X)
#define HB_NULL_POOL_SIZE 264
static_assert (HB_NULL_POOL_SIZE % sizeof (void *) == 0, "Align HB_NULL_POOL_SIZE.");
extern HB_INTERNAL const void * const _hb_NullPool[HB_NULL_POOL_SIZE / sizeof (void *)];
#ifdef HB_NO_VISIBILITY
static
#else
extern HB_INTERNAL
#endif
const void * const _hb_NullPool[HB_NULL_POOL_SIZE / sizeof (void *)];
/* Generic nul-content Null objects. */
template <typename Type>

View File

@ -40,7 +40,9 @@
#include "hb-ot-map-private.hh"
#ifndef HB_NO_VISIBILITY
const void * const OT::_hb_NullPool[HB_NULL_POOL_SIZE / sizeof (void *)] = {};
#endif
hb_ot_layout_t *

View File

@ -120,9 +120,7 @@ extern "C" void hb_free_impl(void *ptr);
#endif
#ifndef HB_INTERNAL
# ifdef __SUNPRO_CC
# define HB_INTERNAL __hidden
# elif !defined(__MINGW32__) && !defined(__CYGWIN__)
# if !defined(HB_NO_VISIBILITY) && !defined(__MINGW32__) && !defined(__CYGWIN__)
# define HB_INTERNAL __attribute__((__visibility__("hidden")))
# else
# define HB_INTERNAL