src/hb-object-private.hh | 163 +++++++++++++++++++++-------------------------- 1 file changed, 75 insertions(+), 88 deletions(-)
New commits: commit 9d861b81f349188a4507350398786a6e94038095 Author: Behdad Esfahbod <beh...@behdad.org> Date: Thu Aug 14 13:15:21 2014 -0400 Really fix clang build this time diff --git a/src/hb-object-private.hh b/src/hb-object-private.hh index 1befd6b..e9aac5d 100644 --- a/src/hb-object-private.hh +++ b/src/hb-object-private.hh @@ -95,6 +95,74 @@ struct hb_user_data_array_t }; +/* object */ + +template <typename Type> +static inline void hb_object_trace (const Type *obj, const char *function) +{ + obj->header.trace (function); +} + +template <typename Type> +static inline Type *hb_object_create (void) +{ + Type *obj = (Type *) calloc (1, sizeof (Type)); + + if (unlikely (!obj)) + return obj; + + hb_object_init (obj); + hb_object_trace (obj, HB_FUNC); + return obj; +} +template <typename Type> +static inline void hb_object_init (Type *obj) +{ + obj->header.init (); +} +template <typename Type> +static inline bool hb_object_is_inert (const Type *obj) +{ + return unlikely (obj->header.is_inert ()); +} +template <typename Type> +static inline Type *hb_object_reference (Type *obj) +{ + if (unlikely (!obj || obj->header.is_inert ())) + return obj; + hb_object_trace (obj, HB_FUNC); + obj->header.reference (); + return obj; +} +template <typename Type> +static inline bool hb_object_destroy (Type *obj) +{ + if (unlikely (!obj || obj->header.is_inert ())) + return false; + hb_object_trace (obj, HB_FUNC); + return obj->header.destroy (); +} +template <typename Type> +static inline bool hb_object_set_user_data (Type *obj, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace) +{ + if (unlikely (!obj || obj->header.is_inert ())) + return false; + return obj->header.set_user_data (key, data, destroy, replace); +} + +template <typename Type> +static inline void *hb_object_get_user_data (Type *obj, + hb_user_data_key_t *key) +{ + if (unlikely (!obj || obj->header.is_inert ())) + return NULL; + return obj->header.get_user_data (key); +} + /* object_header */ struct hb_object_header_t @@ -106,16 +174,6 @@ struct hb_object_header_t private: - template <typename Type> friend Type *hb_object_create (void); - static inline void *create (unsigned int size) { - hb_object_header_t *obj = (hb_object_header_t *) calloc (1, size); - - if (likely (obj)) - obj->init (); - - return obj; - } - template <typename Type> friend void hb_object_init (Type *obj); inline void init (void) { ref_count.init (1); @@ -174,68 +232,5 @@ struct hb_object_header_t }; -/* object */ - -template <typename Type> -static inline void hb_object_trace (const Type *obj, const char *function) -{ - obj->header.trace (function); -} - -template <typename Type> -static inline Type *hb_object_create (void) -{ - Type *obj = (Type *) hb_object_header_t::create (sizeof (Type)); - hb_object_trace (obj, HB_FUNC); - return obj; -} -template <typename Type> -static inline void hb_object_init (Type *obj) -{ - obj->header.init (); -} -template <typename Type> -static inline bool hb_object_is_inert (const Type *obj) -{ - return unlikely (obj->header.is_inert ()); -} -template <typename Type> -static inline Type *hb_object_reference (Type *obj) -{ - if (unlikely (!obj || obj->header.is_inert ())) - return obj; - hb_object_trace (obj, HB_FUNC); - obj->header.reference (); - return obj; -} -template <typename Type> -static inline bool hb_object_destroy (Type *obj) -{ - if (unlikely (!obj || obj->header.is_inert ())) - return false; - hb_object_trace (obj, HB_FUNC); - return obj->header.destroy (); -} -template <typename Type> -static inline bool hb_object_set_user_data (Type *obj, - hb_user_data_key_t *key, - void * data, - hb_destroy_func_t destroy, - hb_bool_t replace) -{ - if (unlikely (!obj || obj->header.is_inert ())) - return false; - return obj->header.set_user_data (key, data, destroy, replace); -} - -template <typename Type> -static inline void *hb_object_get_user_data (Type *obj, - hb_user_data_key_t *key) -{ - if (unlikely (!obj || obj->header.is_inert ())) - return NULL; - return obj->header.get_user_data (key); -} - #endif /* HB_OBJECT_PRIVATE_HH */ commit 272226f294382b0c6921b36e0e67fc53daa765d3 Author: Behdad Esfahbod <beh...@behdad.org> Date: Thu Aug 14 13:11:33 2014 -0400 Revert "Fix build on clang after previous commit" This reverts commit 9c80cbc87f23040a334e30c750f64523d9ef10c8. diff --git a/src/hb-object-private.hh b/src/hb-object-private.hh index 373cff4..1befd6b 100644 --- a/src/hb-object-private.hh +++ b/src/hb-object-private.hh @@ -106,8 +106,7 @@ struct hb_object_header_t private: - template <typename Type> friend - static inline Type *hb_object_create (void); + template <typename Type> friend Type *hb_object_create (void); static inline void *create (unsigned int size) { hb_object_header_t *obj = (hb_object_header_t *) calloc (1, size); @@ -117,27 +116,23 @@ struct hb_object_header_t return obj; } - template <typename Type> friend - static inline void hb_object_init (Type *obj); + template <typename Type> friend void hb_object_init (Type *obj); inline void init (void) { ref_count.init (1); user_data.init (); } - template <typename Type> friend - static inline bool hb_object_is_inert (const Type *obj); + template <typename Type> friend bool hb_object_is_inert (const Type *obj); inline bool is_inert (void) const { return unlikely (ref_count.is_invalid ()); } - template <typename Type> friend - static inline Type *hb_object_reference (Type *obj); + template <typename Type> friend Type *hb_object_reference (Type *obj); inline void reference (void) { ref_count.inc (); } - template <typename Type> friend - static inline bool hb_object_destroy (Type *obj); + template <typename Type> friend bool hb_object_destroy (Type *obj); inline bool destroy (void) { if (ref_count.dec () != 1) return false; @@ -148,12 +143,11 @@ struct hb_object_header_t return true; } - template <typename Type> friend - static inline bool hb_object_set_user_data (Type *obj, - hb_user_data_key_t *key, - void * data, - hb_destroy_func_t destroy, - hb_bool_t replace); + template <typename Type> friend bool hb_object_set_user_data (Type *obj, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); inline bool set_user_data (hb_user_data_key_t *key, void * data, hb_destroy_func_t destroy_func, @@ -161,15 +155,13 @@ struct hb_object_header_t return user_data.set (key, data, destroy_func, replace); } - template <typename type> friend - static inline void *hb_object_get_user_data (type *obj, - hb_user_data_key_t *key); + template <typename type> friend void *hb_object_get_user_data (type *obj, + hb_user_data_key_t *key); inline void *get_user_data (hb_user_data_key_t *key) { return user_data.get (key); } - template <typename Type> friend - static inline void hb_object_trace (const Type *obj, const char *function); + template <typename Type> friend void hb_object_trace (const Type *obj, const char *function); inline void trace (const char *function) const { if (unlikely (!this)) return; DEBUG_MSG (OBJECT, (void *) this, _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz