diff options
author | Mark D. Roth <roth@google.com> | 2017-11-28 08:24:10 -0800 |
---|---|---|
committer | Mark D. Roth <roth@google.com> | 2017-11-28 08:24:10 -0800 |
commit | abadc6c5168f9429173751f1fb4ed225942d6f8c (patch) | |
tree | f94772a2a7be1ad27be227fb4cc72312cac0531b /src | |
parent | 70db663ae8773dc45464c904603a3e73045b45c5 (diff) |
Use New() and Delete() instead of C++ new and delete.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/lib/support/reference_counted.cc | 4 | ||||
-rw-r--r-- | src/core/lib/support/reference_counted.h | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/core/lib/support/reference_counted.cc b/src/core/lib/support/reference_counted.cc index 853a29da2f..84ede18efe 100644 --- a/src/core/lib/support/reference_counted.cc +++ b/src/core/lib/support/reference_counted.cc @@ -20,6 +20,8 @@ #include <grpc/support/log.h> +#include "src/core/lib/support/memory.h" + namespace grpc_core { void ReferenceCounted::Ref(const DebugLocation& location, const char* reason) { @@ -49,7 +51,7 @@ bool ReferenceCounted::Unref(const DebugLocation& location, bool ReferenceCounted::Unref() { if (gpr_unref(&refs_)) { - delete this; + Delete(this); return true; } return false; diff --git a/src/core/lib/support/reference_counted.h b/src/core/lib/support/reference_counted.h index ebd620c553..e71b4fc593 100644 --- a/src/core/lib/support/reference_counted.h +++ b/src/core/lib/support/reference_counted.h @@ -39,6 +39,10 @@ class ReferenceCounted { ReferenceCounted& operator=(const ReferenceCounted&) = delete; protected: + // Allow Delete() to access destructor. + template<typename T> + friend void Delete(T*); + explicit ReferenceCounted(TraceFlag* trace_flag) : trace_flag_(trace_flag) { gpr_ref_init(&refs_, 1); } |