[atomic] More
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 9 Aug 2018 07:53:25 +0000 (00:53 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 9 Aug 2018 07:53:25 +0000 (00:53 -0700)
src/hb-atomic-private.hh
src/hb-object-private.hh

index 276e696..297c646 100644 (file)
@@ -274,8 +274,6 @@ struct hb_atomic_ptr_t
   inline T *get (void) const { return (T *) hb_atomic_ptr_impl_get ((void **) &v); }
   inline bool cmpexch (const T *old, T *new_) const{ return hb_atomic_ptr_impl_cmpexch (&v, old, new_); }
 
-  inline T* operator -> (void) const { return get (); }
-
   mutable T *v;
 };
 
index f5d78e5..4955a68 100644 (file)
@@ -312,10 +312,13 @@ template <typename Type>
 static inline void *hb_object_get_user_data (Type               *obj,
                                             hb_user_data_key_t *key)
 {
-  if (unlikely (!obj || hb_object_is_inert (obj) || !obj->header.user_data.get ()))
+  if (unlikely (!obj || hb_object_is_inert (obj)))
     return nullptr;
   assert (hb_object_is_valid (obj));
-  return obj->header.user_data->get (key);
+  hb_user_data_array_t *user_data = obj->header.user_data.get ();
+  if (!user_data)
+    return nullptr;
+  return user_data->get (key);
 }