You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2014/05/22 01:23:14 UTC

git commit: TS-2757: the Derefer should actually delete things

Repository: trafficserver
Updated Branches:
  refs/heads/master 95afef8b2 -> 99c19a013


TS-2757: the Derefer should actually delete things


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/99c19a01
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/99c19a01
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/99c19a01

Branch: refs/heads/master
Commit: 99c19a0139b14aaf94029baa4e269a95438325cf
Parents: 95afef8
Author: James Peach <jp...@apache.org>
Authored: Wed May 21 15:48:15 2014 -0700
Committer: James Peach <jp...@apache.org>
Committed: Wed May 21 16:23:09 2014 -0700

----------------------------------------------------------------------
 iocore/eventsystem/P_Freer.h | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/99c19a01/iocore/eventsystem/P_Freer.h
----------------------------------------------------------------------
diff --git a/iocore/eventsystem/P_Freer.h b/iocore/eventsystem/P_Freer.h
index 5575a01..b5f1591 100644
--- a/iocore/eventsystem/P_Freer.h
+++ b/iocore/eventsystem/P_Freer.h
@@ -107,14 +107,18 @@ new_Freer(void *ap, ink_hrtime t)
 template<class C> struct DereferContinuation: public Continuation
 {
   C *p;
-  int dieEvent(int event, Event * e)
+
+  int dieEvent(int, Event *)
   {
-    (void) event;
-    (void) e;
     p->refcount_dec();
+    if (REF_COUNT_OBJ_REFCOUNT_DEC(p) == 0) {
+      delete p;
+    }
+
     delete this;
-      return EVENT_DONE;
+    return EVENT_DONE;
   }
+
   DereferContinuation(C * ap):Continuation(NULL), p(ap)
   {
     SET_HANDLER(&DereferContinuation::dieEvent);