From 0da22fb0ada8a54fc59739057f281a406a993212 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 5 Nov 2018 13:13:39 -0500 Subject: [null] Tweak hb_nonnull_ptr_t some more --- src/hb-null.hh | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/hb-null.hh b/src/hb-null.hh index c91af163..25a24f05 100644 --- a/src/hb-null.hh +++ b/src/hb-null.hh @@ -114,20 +114,14 @@ struct hb_nonnull_ptr_t inline hb_nonnull_ptr_t (T *v_ = nullptr) : v (v_) {} inline T * operator = (T *v_) { return v = v_; } - inline T * operator -> (void) { return get (); } - inline const T * operator -> (void) const { return get (); } - inline T & operator * (void) { return *get (); } - inline const T & operator * (void) const { return *get (); } - inline T ** operator & (void) { return &v; } - inline const T ** operator & (void) const { return &v; } - template inline operator C * (void) { return get (); } + inline T * operator -> (void) const { return get (); } + inline T & operator * (void) const { return *get (); } + inline T ** operator & (void) const { return &v; } + /* Only auto-cast to const types. */ template inline operator const C * (void) const { return get (); } - inline operator char * (void) { return (char *) get (); } inline operator const char * (void) const { return (const char *) get (); } - inline T * get (void) { return v ? v : const_cast (&Null(T)); } - inline const T * get (void) const { return v ? v : const_cast (&Null(T)); } - inline T * get_raw (void) { return v; } - inline const T * get_raw (void) const { return v; } + inline T * get (void) const { return v ? v : const_cast (&Null(T)); } + inline T * get_raw (void) const { return v; } T *v; }; -- cgit v1.2.1