Add safe_ptr logic for TF_Buffer.

PiperOrigin-RevId: 281413409
Change-Id: I6f479803e9b1416e3cd3339bf128273d45bd28e4
This commit is contained in:
Amit Patankar 2019-11-19 17:12:47 -08:00 committed by TensorFlower Gardener
parent 6d7c376df8
commit 9200cc5430
2 changed files with 13 additions and 0 deletions

View File

@ -33,4 +33,8 @@ Safe_TF_StatusPtr make_safe(TF_Status* status) {
return Safe_TF_StatusPtr(status);
}
Safe_TF_BufferPtr make_safe(TF_Buffer* buffer) {
return Safe_TF_BufferPtr(buffer);
}
} // namespace tensorflow

View File

@ -42,6 +42,10 @@ struct TFStatusDeleter {
void operator()(TF_Status* p) const { TF_DeleteStatus(p); }
};
struct TFBufferDeleter {
void operator()(TF_Buffer* p) const { TF_DeleteBuffer(p); }
};
} // namespace detail
// Safe container for an owned PyObject. On destruction, the reference count of
@ -65,6 +69,11 @@ Safe_TFE_TensorHandlePtr make_safe(TFE_TensorHandle* handle);
using Safe_TF_StatusPtr = std::unique_ptr<TF_Status, detail::TFStatusDeleter>;
Safe_TF_StatusPtr make_safe(TF_Status* status);
// Safe containers for an owned TF_Buffer. On destruction, the handle
// will be deleted by TF_DeleteBuffer.
using Safe_TF_BufferPtr = std::unique_ptr<TF_Buffer, detail::TFBufferDeleter>;
Safe_TF_BufferPtr make_safe(TF_Buffer* buffer);
} // namespace tensorflow
#endif // TENSORFLOW_PYTHON_LIB_CORE_SAFE_PTR_H_