--------------------- PatchSet 475 Date: 2002/12/24 11:23:09 Author: rbcollins Branch: esi Tag: (none) Log: esiWhen cached entries Members: src/ESI.cc:1.1.2.80->1.1.2.81 Index: squid3/src/ESI.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/ESI.cc,v retrieving revision 1.1.2.80 retrieving revision 1.1.2.81 diff -u -r1.1.2.80 -r1.1.2.81 --- squid3/src/ESI.cc 24 Dec 2002 11:04:13 -0000 1.1.2.80 +++ squid3/src/ESI.cc 24 Dec 2002 11:23:09 -0000 1.1.2.81 @@ -1,6 +1,6 @@ /* - * $Id: ESI.cc,v 1.1.2.80 2002/12/24 11:04:13 rbcollins Exp $ + * $Id: ESI.cc,v 1.1.2.81 2002/12/24 11:23:09 rbcollins Exp $ * * DEBUG: section 86 ESI processing * AUTHOR: Robert Collins @@ -275,9 +275,9 @@ void finish(); protected: esiSequence(esiSequence const &); + esiTreeParentPtr parent; private: static MemPool *Pool; - esiTreeParentPtr parent; int elementIndex (ESIElement::Pointer anElement) const; bool mayFail_; bool failed; @@ -2198,7 +2198,7 @@ esiSequence::makeUsableElements(esiSequence const &old, esiVarState &newVarState) { for (size_t counter = 0; counter < old.elements.size(); ++counter) { - ESIElement::Pointer newElement = old.elements[counter]->makeUsable (parent, newVarState); + ESIElement::Pointer newElement = old.elements[counter]->makeUsable (this, newVarState); if (newElement.getRaw()) assert (addElement(newElement)); } @@ -3666,7 +3666,7 @@ esiChoose::makeUsableElements(esiChoose const &old, esiVarState &newVarState) { for (size_t counter = 0; counter < old.elements.size(); ++counter) { - ESIElement::Pointer newElement = old.elements[counter]->makeUsable (parent, newVarState); + ESIElement::Pointer newElement = old.elements[counter]->makeUsable (this, newVarState); if (newElement.getRaw()) assert (addElement(newElement)); } @@ -3835,8 +3835,13 @@ ESIElement::Pointer esiWhen::makeUsable(esiTreeParentPtr newParent, esiVarState &newVarState) const { - assert (0); - return NULL; + esiWhen *resultW = new esiWhen (*this); + ESIElement::Pointer result = resultW; + resultW->parent = newParent; + resultW->makeUsableElements(*this, newVarState); + resultW->varState = cbdataReference (&newVarState); + resultW->evaluate(); + return result; } /* esiOtherwise */