Return reference in vk::RefBase::get().
authorJarkko Pöyry <jpoyry@google.com>
Thu, 25 Jun 2015 20:19:56 +0000 (13:19 -0700)
committerJarkko Pöyry <jpoyry@google.com>
Fri, 26 Jun 2015 17:02:43 +0000 (10:02 -0700)
Change-Id: I1feda95295e72385b97fa8e2bc6db05b670c916b

framework/vulkan/vkRef.hpp

index b89e4ce..b347a2c 100644 (file)
@@ -200,21 +200,20 @@ template<typename T>
 class RefBase
 {
 public:
-                                                                               ~RefBase        (void);
-
-       inline typename Traits<T>::Type         get                     (void) const throw() { return m_data.object;    }
-       inline typename Traits<T>::Type         operator*       (void) const throw() { return get();            }
-       inline operator                                         bool            (void) const throw() { return !!get();          }
+                                                                                       ~RefBase        (void);
 
+       inline const typename Traits<T>::Type&  get                     (void) const throw() { return m_data.object;    }
+       inline const typename Traits<T>::Type&  operator*       (void) const throw() { return get();                    }
+       inline operator                                                 bool            (void) const throw() { return !!get();                  }
 protected:
-                                                                               RefBase         (RefData<T> data) : m_data(data)        {}
+                                                                                       RefBase         (RefData<T> data) : m_data(data)        {}
 
-       void                                                            reset           (void);                         //!< Release previous object, set to null.
-       RefData<T>                                                      disown          (void) throw();         //!< Disown and return object (ownership transferred to caller).
-       void                                                            assign          (RefData<T> data);      //!< Set new pointer, release previous pointer.
+       void                                                                    reset           (void);                         //!< Release previous object, set to null.
+       RefData<T>                                                              disown          (void) throw();         //!< Disown and return object (ownership transferred to caller).
+       void                                                                    assign          (RefData<T> data);      //!< Set new pointer, release previous pointer.
 
 private:
-       RefData<T>                                                      m_data;
+       RefData<T>                                                              m_data;
 };
 
 /*--------------------------------------------------------------------*//*!