// A wrapper which wraps around Object** and restores the pointer in the destructor. // TODO: Delete template<class T> class HandleWrapper : public MutableHandle<T> { public:
HandleWrapper(T** obj, const MutableHandle<T>& handle)
: MutableHandle<T>(handle), obj_(obj) {
}
// A wrapper which wraps around ObjPtr<Object>* and restores the pointer in the destructor. // TODO: Add more functionality. template<class T> class HandleWrapperObjPtr : public MutableHandle<T> { public:
HandleWrapperObjPtr(ObjPtr<T>* obj, const MutableHandle<T>& handle)
: MutableHandle<T>(handle), obj_(obj) {}