This change has been identified as the trigger for several object caching
errors. The real cause is not yet known, but reverting this optimisation
avoids it, so is being done for stability.
This resolves bugs 4370 and maybe also 4354 and 4355
class StoreEntry : public hash_link, public Packable
{
- MEMPROXY_CLASS(StoreEntry);
public:
static DeferredRead::DeferrableRead DeferReader;
return false;
};
+ void *operator new(size_t byteCount);
+ void operator delete(void *address);
void setReleaseFlag();
#if USE_SQUID_ESI
Root().stat(*output);
}
+// XXX: new/delete operators need to be replaced with MEMPROXY_CLASS
+// definitions but doing so exposes bug 4370, and maybe 4354 and 4355
+void *
+StoreEntry::operator new (size_t bytecount)
+{
+ assert(bytecount == sizeof (StoreEntry));
+
+ if (!pool) {
+ pool = memPoolCreate ("StoreEntry", bytecount);
+ }
+
+ return pool->alloc();
+}
+
+void
+StoreEntry::operator delete (void *address)
+{
+ pool->freeOne(address);
+}
+
void
StoreEntry::makePublic()
{
void StoreEntry::getPublicByRequestMethod(StoreClient * aClient, HttpRequest * request, const HttpRequestMethod& method) STUB
void StoreEntry::getPublicByRequest(StoreClient * aClient, HttpRequest * request) STUB
void StoreEntry::getPublic(StoreClient * aClient, const char *uri, const HttpRequestMethod& method) STUB
+void *StoreEntry::operator new(size_t byteCount)
+{
+ STUB
+ return new StoreEntry();
+}
+void StoreEntry::operator delete(void *address) STUB
void StoreEntry::setReleaseFlag() STUB
//#if USE_SQUID_ESI
//ESIElement::Pointer StoreEntry::cachedESITree STUB_RETVAL(NULL)