]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: migrate ESI objects to CBDATA_CLASS API
authorAmos Jeffries <squid3@treenet.co.nz>
Tue, 3 Feb 2015 15:42:23 +0000 (07:42 -0800)
committerAmos Jeffries <squid3@treenet.co.nz>
Tue, 3 Feb 2015 15:42:23 +0000 (07:42 -0800)
Replace several objects use of CBDATA_TYPE to CBDATA_CLASS.

Change esiRemove from CBDATA to MEMPROXY_CLASS.

Remove dead code from earlier CBDATA updates.

src/esi/Attempt.h
src/esi/Esi.cc
src/esi/Except.h
src/esi/Include.cc
src/esi/Segment.cc
src/esi/Segment.h
src/esi/Var.h
src/esi/VarState.cc
src/esi/VarState.h

index 391cb0605b7be24ab6a45f40d562bc1b81209405..47b0a89d429407e08d19e01f6b864e9f6a38d30d 100644 (file)
 #include "esi/Element.h"
 #include "esi/Sequence.h"
 
-/* esiAttempt */
-
 struct esiAttempt : public esiSequence {
-    //    void *operator new (size_t byteCount);
-    //    void operator delete (void *address);
     esiAttempt(esiTreeParentPtr aParent) : esiSequence (aParent) {}
 };
 
index 99c16a4b97c2f913d157ab4acf2321955eec54c2..dd6e3bccc342c1e335e317c15af9272ae084e2d9 100644 (file)
@@ -29,6 +29,7 @@
 #include "esi/Expression.h"
 #include "esi/Segment.h"
 #include "esi/VarState.h"
+#include "fatal.h"
 #include "HttpHdrSc.h"
 #include "HttpHdrScTarget.h"
 #include "HttpReply.h"
@@ -104,23 +105,19 @@ public:
 
 class esiRemove : public ESIElement
 {
+    MEMPROXY_CLASS(esiRemove);
 
 public:
-    void *operator new (size_t byteCount);
-    void operator delete (void *address);
-
-    esiRemove();
-    void render(ESISegment::Pointer);
-    bool addElement (ESIElement::Pointer);
-    Pointer makeCacheable() const;
-    Pointer makeUsable(esiTreeParentPtr, ESIVarState &) const;
-    void finish();
+    esiRemove() : ESIElement() {}
+    virtual ~esiRemove() {}
+
+    virtual void render(ESISegment::Pointer);
+    virtual bool addElement (ESIElement::Pointer);
+    virtual Pointer makeCacheable() const;
+    virtual Pointer makeUsable(esiTreeParentPtr, ESIVarState &) const;
+    virtual void finish() {}
 };
 
-CBDATA_TYPE (esiRemove);
-static FREE esiRemoveFree;
-static ESIElement * esiRemoveNew(void);
-
 class esiTry : public ESIElement
 {
     MEMPROXY_CLASS(esiTry);
@@ -213,8 +210,6 @@ private:
 };
 
 struct esiOtherwise : public esiSequence {
-    //    void *operator new (size_t byteCount);
-    //    void operator delete (void *address);
     esiOtherwise(esiTreeParentPtr aParent) : esiSequence (aParent) {}
 };
 
@@ -1021,7 +1016,7 @@ ESIContext::start(const char *el, const char **attr, size_t attrCount)
 
     case ESIElement::ESI_ELEMENT_REMOVE:
         /* Put on the stack to allow skipping of 'invalid' markup */
-        element = esiRemoveNew ();
+        element = new esiRemove();
         break;
 
     case ESIElement::ESI_ELEMENT_TRY:
@@ -1584,42 +1579,6 @@ esiLiteral::makeUsable(esiTreeParentPtr , ESIVarState &newVarState) const
 }
 
 /* esiRemove */
-void
-esiRemoveFree (void *data)
-{
-    esiRemove *thisNode = (esiRemove *)data;
-    debugs(86, 5, "esiRemoveFree " << thisNode);
-}
-
-void *
-esiRemove::operator new(size_t byteCount)
-{
-    assert (byteCount == sizeof (esiRemove));
-    void *rv;
-    CBDATA_INIT_TYPE_FREECB(esiRemove, esiRemoveFree);
-    rv = (void *)cbdataAlloc (esiRemove);
-    return rv;
-}
-
-void
-esiRemove::operator delete (void *address)
-{
-    cbdataFree (address);
-}
-
-ESIElement *
-esiRemoveNew ()
-{
-    return new esiRemove;
-}
-
-esiRemove::esiRemove()
-{}
-
-void
-esiRemove::finish()
-{}
-
 void
 esiRemove::render(ESISegment::Pointer output)
 {
@@ -1916,63 +1875,6 @@ esiTry::finish()
     except = NULL;
 }
 
-/* esiAttempt */
-#if 0
-void *
-esiAttempt::operator new(size_t byteCount)
-{
-    assert (byteCount == sizeof (esiAttempt));
-
-}
-
-void
-esiAttempt::operator delete (void *address)
-{
-    cbdataFree (address);
-}
-
-#endif
-
-/* esiExcept */
-#if 0
-void *
-esiExcept::operator new(size_t byteCount)
-{
-    assert (byteCount == sizeof (esiExcept));
-    void *rv;
-    CBDATA_INIT_TYPE_FREECB(esiExcept, esiSequence::Free);
-    rv = (void *)cbdataAlloc (esiExcept);
-    return rv;
-}
-
-void
-esiExcept::operator delete (void *address)
-{
-    cbdataFree (address);
-}
-
-#endif
-
-/* ESIVar */
-#if 0
-void *
-esiVar::operator new(size_t byteCount)
-{
-    assert (byteCount == sizeof (esiVar));
-    void *rv;
-    CBDATA_INIT_TYPE_FREECB(esiVar, esiSequence::Free);
-    rv = (void *)cbdataAlloc (esiVar);
-    return rv;
-}
-
-void
-esiVar::operator delete (void *address)
-{
-    cbdataFree (address);
-}
-
-#endif
-
 /* esiChoose */
 esiChoose::~esiChoose()
 {
@@ -2369,26 +2271,6 @@ esiWhen::makeUsable(esiTreeParentPtr newParent, ESIVarState &newVarState) const
     return result;
 }
 
-/* esiOtherwise */
-#if 0
-void *
-esiOtherwise::operator new(size_t byteCount)
-{
-    assert (byteCount == sizeof (esiOtherwise));
-    void *rv;
-    CBDATA_INIT_TYPE_FREECB(esiOtherwise, esiSequence::Free);
-    rv = (void *)cbdataAlloc (esiOtherwise);
-    return rv;
-}
-
-void
-esiOtherwise::operator delete (void *address)
-{
-    cbdataFree (address);
-}
-
-#endif
-
 /* TODO: implement surrogate targeting and control processing */
 int
 esiEnableProcessing (HttpReply *rep)
index e275b855a912343261496904c40754082c001192..030ce75e12dbf5d4b23aa1c75b8b20ff6998f088 100644 (file)
@@ -20,8 +20,6 @@ class esiExcept : public esiSequence
 {
 
 public:
-    //    void *operator new (size_t byteCount);
-    //    void operator delete (void *address);
     esiExcept(esiTreeParentPtr aParent) : esiSequence (aParent) {}
 };
 
index 6d702e365548e96eb5b9c633d35608a85529f9e7..9dec46541d4f7787b0805994f54b0f8b70ddcbd4 100644 (file)
 
 #include "squid.h"
 
-/* MS Visual Studio Projects are monolithic, so we need the following
- * #if to exclude the ESI code from compile process when not needed.
- */
-#if (USE_SQUID_ESI == 1)
+#if USE_SQUID_ESI
 
 #include "client_side.h"
 #include "client_side_request.h"
 #include "esi/Include.h"
 #include "esi/VarState.h"
+#include "fatal.h"
 #include "HttpReply.h"
 #include "log/access_log.h"
 
@@ -559,5 +557,5 @@ ESIInclude::subRequestDone (ESIStreamContext::Pointer stream, bool success)
     }
 }
 
-#endif /* USE_SQUID_ESI == 1 */
+#endif /* USE_SQUID_ESI */
 
index 22e438fe6055de755a8fbf4753ad799e7862eeee..eaa2b74bf4f97297359265d3ac5657c23a3ae1d1 100644 (file)
@@ -13,9 +13,8 @@
 #include "esi/Segment.h"
 #include "SquidString.h"
 
-CBDATA_TYPE(ESISegment);
+CBDATA_CLASS_INIT(ESISegment);
 
-/* ESISegment */
 void
 ESISegmentFreeList (ESISegment::Pointer &head)
 {
@@ -126,22 +125,6 @@ ESISegment::ListAppend (ESISegment::Pointer &head, char const *s, size_t len)
     head->tail()->listAppend (s, len);
 }
 
-void *
-ESISegment::operator new(size_t byteCount)
-{
-    assert (byteCount == sizeof (ESISegment));
-    void *rv;
-    CBDATA_INIT_TYPE(ESISegment);
-    rv = (void *)cbdataAlloc (ESISegment);
-    return rv;
-}
-
-void
-ESISegment::operator delete (void *address)
-{
-    cbdataFree (address);
-}
-
 /* XXX: if needed, make this iterative */
 ESISegment::Pointer
 ESISegment::cloneList () const
@@ -188,9 +171,6 @@ ESISegment::tail()
     return result.getRaw();
 }
 
-ESISegment::ESISegment() : len(0), next(NULL)
-{}
-
 ESISegment::ESISegment(ESISegment const &old) : len (0), next(NULL)
 {
     append (old.buf, old.len);
index 007406dc295964aed6c8177a2b8b2256c2f3629b..99c97ab4356a7fc934b7c3cef2e59664730b49a8 100644 (file)
 
 class ESISegment : public RefCountable
 {
+    CBDATA_CLASS(ESISegment);
 
 public:
     typedef RefCount<ESISegment> Pointer;
     static void ListAppend (Pointer &, char const *, size_t);
     static void ListTransfer (Pointer &from, Pointer &to);
-    void *operator new (size_t byteCount);
-    void operator delete (void *address);
 
-    ESISegment();
+    ESISegment() : len(0), next(NULL) {*buf = 0;}
     ESISegment(ESISegment const &);
+    ~ESISegment() {}
+
     ESISegment::Pointer cloneList() const;
     char *listToChar() const;
     void listAppend (char const *s, size_t length);
index e649c3e67418798e79f7da28487e22c68f15c61a..8abe88e8e442eb7a83700e46dd976ac0d343d761 100644 (file)
@@ -20,8 +20,6 @@ class ESIVar:public esiSequence
 {
 
 public:
-    //    void *operator new (size_t byteCount);
-    //    void operator delete (void *address);
     ESIVar(esiTreeParentPtr aParent) : esiSequence (aParent) {
         flags.dovars = 1;
     }
index 76750c7cc7b517ed8dc80caac3d09284c58aa5e8..a457b4f61ec8165bd30259e03901db1f21a208bb 100644 (file)
@@ -13,9 +13,6 @@
 #include "fatal.h"
 #include "HttpReply.h"
 
-CBDATA_TYPE (ESIVarState);
-FREE ESIVarStateFree;
-
 char const *ESIVariableUserAgent::esiUserOs[]= {
     "WIN",
     "MAC",
@@ -28,6 +25,8 @@ char const * esiBrowsers[]= {"MSIE",
                              "OTHER"
                             };
 
+CBDATA_CLASS_INIT(ESIVarState);
+
 void
 ESIVarState::Variable::eval (ESIVarState &state, char const *subref, char const *found_default) const
 {
@@ -131,17 +130,12 @@ ESIVarState::extractChar ()
     return rv;
 }
 
-/* ESIVarState */
-void
-esiVarStateFree (void *data)
-{
-    ESIVarState *thisNode = (ESIVarState*)data;
-    thisNode->freeResources();
-}
-
 ESIVarState::~ESIVarState()
 {
-    freeResources();
+    // freeResources
+    input = NULL;
+    ESISegmentFreeList(output);
+    hdr.clean();
 
     while (!variablesForCleanup.empty()) {
         delete variablesForCleanup.back();
@@ -151,30 +145,6 @@ ESIVarState::~ESIVarState()
     delete defaultVariable;
 }
 
-void
-ESIVarState::freeResources()
-{
-    input = NULL;
-    ESISegmentFreeList (output);
-    hdr.clean();
-}
-
-void *
-ESIVarState::operator new(size_t byteCount)
-{
-    assert (byteCount == sizeof (ESIVarState));
-    void *rv;
-    CBDATA_INIT_TYPE_FREECB(ESIVarState, esiVarStateFree);
-    rv = (void *)cbdataAlloc (ESIVarState);
-    return rv;
-}
-
-void
-ESIVarState::operator delete (void *address)
-{
-    cbdataFree (address);
-}
-
 char *
 ESIVariableUserAgent::getProductVersion (char const *s)
 {
index 314aa231f517e0d6be5d4fbcfefc596c459ecb1f..1ad5b9d73ef2d2a70a390d0b42870d560b5b9098 100644 (file)
@@ -33,8 +33,12 @@ struct _query_elem {char *var, *val;};
 
 class ESIVarState
 {
+    CBDATA_CLASS(ESIVarState);
 
 public:
+    ESIVarState(HttpHeader const *hdr, char const *uri);
+    ~ESIVarState();
+
     ESISegment::Pointer extractList();
     char *extractChar();
     void feedData (const char *buf, size_t len);
@@ -44,12 +48,6 @@ public:
     void addVariable (char const *, size_t, Variable *);
     void removeVariable (String const &);
 
-    void *operator new (size_t byteCount);
-    void operator delete (void *address);
-    void freeResources();
-    ESIVarState (HttpHeader const *hdr, char const *uri);
-    ~ESIVarState();
-
     /* For Variables */
     void cookieUsed();
     void hostUsed();