]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
regression fix bug #2583: pure virtual method called
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Mon, 27 Apr 2009 20:20:37 +0000 (23:20 +0300)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Mon, 27 Apr 2009 20:20:37 +0000 (23:20 +0300)
The applied patch hid the problem, did not fix it.
This patch removes the applied patch and instead add an assertion check in
ClientHttpRequest::~ClientHttpRequest destructor just before call the
Adaptation::Initiator::announceInitiatorAbort method.

src/adaptation/Initiator.cc
src/client_side_request.cc

index 08608042ddf34297c9dbaaa1ff6bb5cc35b47221..efbfa4821bf829d0a941fa878e4b0e429763a19f 100644 (file)
@@ -24,7 +24,7 @@ Adaptation::Initiator::clearAdaptation(Initiate *&x)
 void
 Adaptation::Initiator::announceInitiatorAbort(Initiate *&x)
 {
-    if (x && cbdataReferenceValid(x)) {
+    if (x) {
         CallJobHere(93, 5, x, Initiate::noteInitiatorAborted);
         clearAdaptation(x);
     }
index cd51b7032348c502f9d17a3d72f46c79723f65b6..7b7a6c6785320b3c50fd1bfe30bde4f53354abae 100644 (file)
@@ -260,6 +260,7 @@ ClientHttpRequest::~ClientHttpRequest()
     freeResources();
 
 #if USE_ADAPTATION
+    assert(cbdataReferenceValid(virginHeadSource));
     announceInitiatorAbort(virginHeadSource);
 
     if (adaptedBodySource != NULL)