=== modified file 'src/AccessLogEntry.h' --- src/AccessLogEntry.h 2012-09-21 14:57:30 +0000 +++ src/AccessLogEntry.h 2012-10-26 09:43:15 +0000 @@ -31,6 +31,7 @@ #define SQUID_HTTPACCESSLOGENTRY_H #include "anyp/PortCfg.h" +#include "base/RefCount.h" #include "comm/Connection.h" #include "HttpVersion.h" #include "HttpRequestMethod.h" @@ -41,7 +42,6 @@ #if ICAP_CLIENT #include "adaptation/icap/Elements.h" #endif -#include "RefCount.h" #if USE_SSL #include "ssl/gadgets.h" #endif === modified file 'src/ClientRequestContext.h' --- src/ClientRequestContext.h 2012-08-14 11:53:07 +0000 +++ src/ClientRequestContext.h 2012-10-26 10:02:00 +0000 @@ -1,8 +1,8 @@ #ifndef SQUID_CLIENTREQUESTCONTEXT_H #define SQUID_CLIENTREQUESTCONTEXT_H +#include "base/RefCount.h" #include "cbdata.h" -#include "RefCount.h" #include "ipcache.h" #if USE_ADAPTATION === modified file 'src/DelayIdComposite.h' --- src/DelayIdComposite.h 2012-09-01 14:38:36 +0000 +++ src/DelayIdComposite.h 2012-10-26 10:02:22 +0000 @@ -38,8 +38,8 @@ #define DELAYIDCOMPOSITE_H #if USE_DELAY_POOLS +#include "base/RefCount.h" #include "fatal.h" -#include "RefCount.h" class DeferredRead; === modified file 'src/DiskIO/DiskDaemon/DiskdFile.cc' --- src/DiskIO/DiskDaemon/DiskdFile.cc 2012-10-08 07:06:28 +0000 +++ src/DiskIO/DiskDaemon/DiskdFile.cc 2012-10-26 08:42:39 +0000 @@ -386,7 +386,7 @@ assert (M->requestor); ReadRequest::Pointer readRequest = dynamic_cast(M->requestor); /* remove the free protection */ - readRequest->RefCountDereference(); + readRequest->unlock(); if (M->status < 0) { ++diskd_stats.read.fail; @@ -410,7 +410,7 @@ assert (M->requestor); WriteRequest::Pointer writeRequest = dynamic_cast(M->requestor); /* remove the free protection */ - writeRequest->RefCountDereference(); + writeRequest->unlock(); if (M->status < 0) { errorOccured = true; === modified file 'src/DiskIO/DiskDaemon/DiskdIOStrategy.cc' --- src/DiskIO/DiskDaemon/DiskdIOStrategy.cc 2012-10-08 07:06:28 +0000 +++ src/DiskIO/DiskDaemon/DiskdIOStrategy.cc 2012-10-26 08:40:15 +0000 @@ -324,7 +324,7 @@ if (M->newstyle) { DiskdFile *theFile = (DiskdFile *)M->callback_data; - theFile->RefCountDereference(); + theFile->unlock(); theFile->completed (M); } else switch (M->mtype) { @@ -354,16 +354,16 @@ } int -DiskdIOStrategy::send(int mtype, int id, DiskdFile *theFile, size_t size, off_t offset, ssize_t shm_offset, RefCountable_ *requestor) +DiskdIOStrategy::send(int mtype, int id, DiskdFile *theFile, size_t size, off_t offset, ssize_t shm_offset, LockableObject *requestor) { diomsg M; M.callback_data = cbdataReference(theFile); - theFile->RefCountReference(); + theFile->lock(); M.requestor = requestor; M.newstyle = true; if (requestor) - requestor->RefCountReference(); + requestor->lock(); return SEND(&M, mtype, id, size, offset, shm_offset); } === modified file 'src/DiskIO/DiskDaemon/DiskdIOStrategy.h' --- src/DiskIO/DiskDaemon/DiskdIOStrategy.h 2012-09-01 14:38:36 +0000 +++ src/DiskIO/DiskDaemon/DiskdIOStrategy.h 2012-10-26 08:22:22 +0000 @@ -62,7 +62,7 @@ class DiskFile; class DiskdFile; - +class LockableObject; class ReadRequest; /// \ingroup diskd @@ -80,8 +80,8 @@ virtual void init(); virtual void sync(); virtual int callback(); - virtual void statfs(StoreEntry & sentry)const; - int send(int mtype, int id, DiskdFile *theFile, size_t size, off_t offset, ssize_t shm_offset, RefCountable_ *requestor); + virtual void statfs(StoreEntry & sentry) const; + int send(int mtype, int id, DiskdFile *theFile, size_t size, off_t offset, ssize_t shm_offset, LockableObject *requestor); /** public for accessing return address's */ SharedMemory shm; === modified file 'src/DiskIO/DiskDaemon/diomsg.h' --- src/DiskIO/DiskDaemon/diomsg.h 2011-10-30 02:42:27 +0000 +++ src/DiskIO/DiskDaemon/diomsg.h 2012-10-26 08:38:02 +0000 @@ -17,14 +17,14 @@ _MQD_UNLINK }; -struct RefCountable_; +class LockableObject; struct diomsg { mtyp_t mtype; int id; int seq_no; void * callback_data; - RefCountable_ * requestor; + LockableObject * requestor; size_t size; off_t offset; int status; === modified file 'src/DiskIO/DiskFile.h' --- src/DiskIO/DiskFile.h 2012-09-01 14:38:36 +0000 +++ src/DiskIO/DiskFile.h 2012-10-26 09:44:40 +0000 @@ -31,10 +31,9 @@ #ifndef SQUID_DISKFILE_H #define SQUID_DISKFILE_H +#include "base/RefCount.h" #include "typedefs.h" -#include "RefCount.h" - class IORequestor; class ReadRequest; === modified file 'src/DiskIO/DiskIOStrategy.h' --- src/DiskIO/DiskIOStrategy.h 2012-09-01 14:38:36 +0000 +++ src/DiskIO/DiskIOStrategy.h 2012-10-26 09:45:29 +0000 @@ -31,8 +31,8 @@ #ifndef SQUID_DISKIOSTRATEGY_H #define SQUID_DISKIOSTRATEGY_H +#include "base/RefCount.h" #include "Store.h" -#include "RefCount.h" class DiskFile; === modified file 'src/DiskIO/IORequestor.h' --- src/DiskIO/IORequestor.h 2012-09-01 14:38:36 +0000 +++ src/DiskIO/IORequestor.h 2012-10-26 09:47:26 +0000 @@ -32,7 +32,7 @@ #ifndef SQUID_IOREQUESTOR_H #define SQUID_IOREQUESTOR_H -#include "RefCount.h" +#include "base/RefCount.h" class ReadRequest; === modified file 'src/DiskIO/ReadRequest.h' --- src/DiskIO/ReadRequest.h 2012-09-01 14:38:36 +0000 +++ src/DiskIO/ReadRequest.h 2012-10-26 09:46:51 +0000 @@ -32,8 +32,8 @@ #ifndef SQUID_READREQUEST_H #define SQUID_READREQUEST_H +#include "base/RefCount.h" #include "cbdata.h" -#include "RefCount.h" class ReadRequest : public RefCountable { === modified file 'src/DiskIO/WriteRequest.h' --- src/DiskIO/WriteRequest.h 2012-09-01 14:38:36 +0000 +++ src/DiskIO/WriteRequest.h 2012-10-26 09:46:15 +0000 @@ -32,8 +32,8 @@ #ifndef SQUID_WRITEREQUEST_H #define SQUID_WRITEREQUEST_H +#include "base/RefCount.h" #include "cbdata.h" -#include "RefCount.h" class WriteRequest : public RefCountable { === modified file 'src/MemBlob.cc' --- src/MemBlob.cc 2012-08-31 16:57:39 +0000 +++ src/MemBlob.cc 2012-10-26 08:10:42 +0000 @@ -142,6 +142,6 @@ << "mem:" << static_cast(mem) << ",capacity:" << capacity << ",size:" << size - << ",refs:" << RefCountCount() << "; "; + << ",refs:" << LockCount() << "; "; return os; } === modified file 'src/MemBlob.h' --- src/MemBlob.h 2012-08-28 13:00:30 +0000 +++ src/MemBlob.h 2012-10-26 10:02:59 +0000 @@ -34,8 +34,8 @@ #define MEMBLOB_DEBUGSECTION 24 #include "base/InstanceId.h" +#include "base/RefCount.h" #include "MemPool.h" -#include "RefCount.h" /// Various MemBlob class-wide statistics. class MemBlobStats === modified file 'src/NullDelayId.h' --- src/NullDelayId.h 2012-09-01 14:38:36 +0000 +++ src/NullDelayId.h 2012-10-26 10:03:08 +0000 @@ -38,7 +38,7 @@ #define NULLDELAYID_H #if USE_DELAY_POOLS -#include "RefCount.h" +#include "base/RefCount.h" #include "DelayIdComposite.h" class NullDelayId : public DelayIdComposite === modified file 'src/SquidConfig.h' --- src/SquidConfig.h 2012-10-09 23:15:44 +0000 +++ src/SquidConfig.h 2012-10-26 09:36:56 +0000 @@ -30,13 +30,13 @@ */ #include "acl/AclAddress.h" +#include "base/RefCount.h" #include "ClientDelayConfig.h" #include "DelayConfig.h" #include "HelperChildConfig.h" #include "HttpHeaderTools.h" #include "icmp/IcmpConfig.h" #include "ip/Address.h" -#include "RefCount.h" #include "YesNoNone.h" #if USE_SSL === modified file 'src/Store.h' --- src/Store.h 2012-10-16 00:18:09 +0000 +++ src/Store.h 2012-10-26 09:40:03 +0000 @@ -35,13 +35,13 @@ \ingroup FileSystems */ +#include "base/RefCount.h" #include "comm/forward.h" #include "CommRead.h" #include "hash.h" #include "HttpReply.h" #include "HttpRequestMethod.h" #include "Range.h" -#include "RefCount.h" #include "RemovalPolicy.h" #include "StoreIOBuffer.h" #include "StoreStats.h" === modified file 'src/StoreIOState.h' --- src/StoreIOState.h 2012-10-03 17:32:57 +0000 +++ src/StoreIOState.h 2012-10-26 10:09:07 +0000 @@ -32,8 +32,8 @@ #ifndef SQUID_STOREIOSTATE_H #define SQUID_STOREIOSTATE_H +#include "base/RefCount.h" #include "cbdata.h" -#include "RefCount.h" class StoreIOState : public RefCountable { === modified file 'src/StoreSearch.h' --- src/StoreSearch.h 2012-09-01 14:38:36 +0000 +++ src/StoreSearch.h 2012-10-26 09:44:31 +0000 @@ -31,7 +31,7 @@ #ifndef SQUID_STORESEARCH_H #define SQUID_STORESEARCH_H -#include "RefCount.h" +#include "base/RefCount.h" #include "Store.h" class StoreSearch : public RefCountable === modified file 'src/adaptation/History.h' --- src/adaptation/History.h 2012-08-28 13:00:30 +0000 +++ src/adaptation/History.h 2012-10-26 10:05:21 +0000 @@ -3,8 +3,8 @@ #include "adaptation/DynamicGroupCfg.h" #include "Array.h" +#include "base/RefCount.h" #include "HttpHeader.h" -#include "RefCount.h" #include "SquidString.h" namespace Adaptation === modified file 'src/adaptation/Message.h' --- src/adaptation/Message.h 2012-10-04 11:10:17 +0000 +++ src/adaptation/Message.h 2012-10-26 10:05:44 +0000 @@ -1,7 +1,7 @@ #ifndef SQUID__ADAPTATION__MESSAGE_H #define SQUID__ADAPTATION__MESSAGE_H -#include "RefCount.h" +#include "base/RefCount.h" class HttpMsg; class BodyPipe; === modified file 'src/adaptation/Service.h' --- src/adaptation/Service.h 2012-10-04 09:14:06 +0000 +++ src/adaptation/Service.h 2012-10-26 10:05:54 +0000 @@ -2,10 +2,10 @@ #define SQUID_ADAPTATION__SERVICE_H #include "SquidString.h" -#include "RefCount.h" #include "adaptation/forward.h" #include "adaptation/Elements.h" #include "adaptation/ServiceConfig.h" +#include "base/RefCount.h" // TODO: Move src/ICAP/ICAPServiceRep.h API comments here and update them === modified file 'src/adaptation/ServiceConfig.h' --- src/adaptation/ServiceConfig.h 2011-05-13 10:38:28 +0000 +++ src/adaptation/ServiceConfig.h 2012-10-26 10:05:35 +0000 @@ -2,7 +2,7 @@ #define SQUID_ADAPTATION__SERVICE_CONFIG_H #include "SquidString.h" -#include "RefCount.h" +#include "base/RefCount.h" #include "adaptation/Elements.h" namespace Adaptation === modified file 'src/adaptation/ServiceGroups.h' --- src/adaptation/ServiceGroups.h 2012-10-04 09:14:06 +0000 +++ src/adaptation/ServiceGroups.h 2012-10-26 10:06:04 +0000 @@ -3,9 +3,9 @@ #include "SquidString.h" #include "Array.h" -#include "RefCount.h" #include "adaptation/Elements.h" #include "adaptation/forward.h" +#include "base/RefCount.h" namespace Adaptation { === modified file 'src/adaptation/icap/History.h' --- src/adaptation/icap/History.h 2012-08-14 11:53:07 +0000 +++ src/adaptation/icap/History.h 2012-10-26 10:05:00 +0000 @@ -1,8 +1,8 @@ #ifndef SQUID_ICAPHISTORY_H #define SQUID_ICAPHISTORY_H +#include "base/RefCount.h" #include "enums.h" -#include "RefCount.h" #include "SquidString.h" namespace Adaptation === modified file 'src/adaptation/icap/icap_log.h' --- src/adaptation/icap/icap_log.h 2012-08-14 11:53:07 +0000 +++ src/adaptation/icap/icap_log.h 2012-10-26 10:05:07 +0000 @@ -2,7 +2,7 @@ #define ICAP_LOG_H_ #include "AccessLogEntry.h" -#include "RefCount.h" +#include "base/RefCount.h" typedef RefCount AccessLogEntryPointer; class AccessLogEntry; === modified file 'src/auth/Scheme.h' --- src/auth/Scheme.h 2012-09-01 14:38:36 +0000 +++ src/auth/Scheme.h 2012-10-26 09:38:55 +0000 @@ -34,7 +34,7 @@ #if USE_AUTH #include "Array.h" -#include "RefCount.h" +#include "base/RefCount.h" /** \defgroup AuthSchemeAPI Authentication Scheme API === modified file 'src/auth/User.cc' --- src/auth/User.cc 2012-09-04 09:10:20 +0000 +++ src/auth/User.cc 2012-10-26 08:12:24 +0000 @@ -151,7 +151,7 @@ Auth::User::~User() { debugs(29, 5, HERE << "Freeing auth_user '" << this << "'."); - assert(RefCountCount() == 0); + assert(LockCount() == 0); /* free cached acl results */ aclCacheMatchFlush(&proxy_match_cache); @@ -223,7 +223,7 @@ auth_user->auth_type << "\n\tUsername: " << username << "\n\texpires: " << (long int) (auth_user->expiretime + ::Config.authenticateTTL) << - "\n\treferences: " << (long int) auth_user->RefCountCount()); + "\n\treferences: " << auth_user->LockCount()); if (auth_user->expiretime + ::Config.authenticateTTL <= current_time.tv_sec) { debugs(29, 5, HERE << "Removing user " << username << " from cache due to timeout."); === modified file 'src/auth/User.h' --- src/auth/User.h 2012-09-01 14:38:36 +0000 +++ src/auth/User.h 2012-10-26 09:39:50 +0000 @@ -36,9 +36,9 @@ #include "auth/CredentialState.h" #include "auth/Type.h" +#include "base/RefCount.h" #include "dlink.h" #include "ip/Address.h" -#include "RefCount.h" class AuthUserHashPointer; class StoreEntry; === modified file 'src/auth/UserRequest.cc' --- src/auth/UserRequest.cc 2012-09-01 14:42:17 +0000 +++ src/auth/UserRequest.cc 2012-10-26 08:11:27 +0000 @@ -117,7 +117,7 @@ Auth::UserRequest::~UserRequest() { - assert(RefCountCount()==0); + assert(LockCount()==0); debugs(29, 5, HERE << "freeing request " << this); if (user() != NULL) { === modified file 'src/auth/basic/UserRequest.h' --- src/auth/basic/UserRequest.h 2012-06-19 23:16:13 +0000 +++ src/auth/basic/UserRequest.h 2012-10-26 08:00:22 +0000 @@ -21,7 +21,7 @@ MEMPROXY_CLASS(Auth::Basic::UserRequest); UserRequest() {} - virtual ~UserRequest() { assert(RefCountCount()==0); } + virtual ~UserRequest() { assert(LockCount()==0); } virtual int authenticated() const; virtual void authenticate(HttpRequest * request, ConnStateData *conn, http_hdr_type type); === modified file 'src/auth/digest/UserRequest.cc' --- src/auth/digest/UserRequest.cc 2012-08-31 16:57:39 +0000 +++ src/auth/digest/UserRequest.cc 2012-10-26 08:09:38 +0000 @@ -28,7 +28,7 @@ */ Auth::Digest::UserRequest::~UserRequest() { - assert(RefCountCount()==0); + assert(LockCount()==0); safe_free(nonceb64); safe_free(cnonce); === modified file 'src/auth/negotiate/UserRequest.cc' --- src/auth/negotiate/UserRequest.cc 2012-09-19 17:16:56 +0000 +++ src/auth/negotiate/UserRequest.cc 2012-10-26 08:06:07 +0000 @@ -22,7 +22,7 @@ Auth::Negotiate::UserRequest::~UserRequest() { - assert(RefCountCount()==0); + assert(LockCount()==0); safe_free(server_blob); safe_free(client_blob); === modified file 'src/auth/ntlm/UserRequest.cc' --- src/auth/ntlm/UserRequest.cc 2012-09-19 17:16:56 +0000 +++ src/auth/ntlm/UserRequest.cc 2012-10-26 08:05:15 +0000 @@ -19,7 +19,7 @@ Auth::Ntlm::UserRequest::~UserRequest() { - assert(RefCountCount()==0); + assert(LockCount()==0); safe_free(server_blob); safe_free(client_blob); === added file 'src/base/LockableObject.h' --- src/base/LockableObject.h 1970-01-01 00:00:00 +0000 +++ src/base/LockableObject.h 2012-10-26 03:43:24 +0000 @@ -0,0 +1,44 @@ +#ifndef SQUID_SRC_BASE_LOCKABLEOBJECT_H +#define SQUID_SRC_BASE_LOCKABLEOBJECT_H + +/** + * Base class for all reference tracking types. + * RefCount, CbData, etc + * + * The objects to be tracked inherit from this and + * construct/destruct/invalidation of the trackign mechanism + * use this interface API to maintain the locks. + */ +class LockableObject { +public: + LockableObject():count_(0) {} + + virtual ~LockableObject() { assert(count_ == 0); } + + /* Not private, to allow class hierarchies */ + void lock() const { +#if REFCOUNT_DEBUG + old_debug(0,1)("Incrementing this %p from count %u\n",this,count_); +#endif + ++count_; + } + + unsigned unlock() const { +#if REFCOUNT_DEBUG + old_debug(0,1)("Decrementing this %p from count %u\n",this,count_); +#endif + return --count_; + } + + unsigned LockCount() const { return count_; } // for debugging only + +private: + mutable unsigned count_; +}; + +// TODO: update all code to use 'Lockable' instead +#define RefCountable virtual LockableObject + +#define Lockable virtual LockableObject + +#endif /* SQUID_SRC_BASE_LOCKABLEOBJECT_H */ === modified file 'src/base/Makefile.am' --- src/base/Makefile.am 2011-12-04 05:39:39 +0000 +++ src/base/Makefile.am 2012-10-26 10:27:03 +0000 @@ -16,9 +16,24 @@ TidyPointer.h \ CbcPointer.h \ InstanceId.h \ + LockableObject.h \ RunnersRegistry.cc \ RunnersRegistry.h \ Subscription.h \ TextException.cc \ TextException.h \ StringArea.h + +check_PROGRAMS += testRefCount + +testRefCount_SOURCES= \ + LockableObject.h \ + RefCount.h \ + testRefCount.cc + +testRefCount_LDADD = \ + libbase.la \ + $(top_builddir)/lib/libmiscutil.la \ + $(COMPAT_LIB) \ + $(XTRA_LIBS) + === renamed file 'include/RefCount.h' => 'src/base/RefCount.h' --- include/RefCount.h 2012-09-01 14:38:36 +0000 +++ src/base/RefCount.h 2012-10-26 07:51:28 +0000 @@ -33,10 +33,19 @@ #ifndef SQUID_REFCOUNT_H_ #define SQUID_REFCOUNT_H_ +// reference counting requires the LockableObject API on base classes +#include "base/LockableObject.h" + #if HAVE_IOSTREAM #include #endif +/** + * Template for Reference Counting pointers. + * + * Objects of type 'C' must inherit from 'Lockable' in base/LockableObject.h + * which provides the locking interface used by reference counting. + */ template class RefCount { @@ -90,54 +99,24 @@ C const (*tempP_) (p_); p_ = newP; - if (tempP_ && tempP_->RefCountDereference() == 0) + if (tempP_ && tempP_->unlock() == 0) delete tempP_; } void reference (const RefCount& p) { if (p.p_) - p.p_->RefCountReference(); + p.p_->lock(); } C const *p_; }; -struct RefCountable_ { - RefCountable_():count_(0) {} - - virtual ~RefCountable_() { assert(count_ == 0); } - - /* Not private, to allow class hierarchies */ - void RefCountReference() const { -#if REFCOUNT_DEBUG - old_debug(0,1)("Incrementing this %p from count %u\n",this,count_); -#endif - - ++count_; - } - - unsigned RefCountDereference() const { -#if REFCOUNT_DEBUG - old_debug(0,1)("Decrementing this %p from count %u\n",this,count_); -#endif - - return --count_; - } - - unsigned RefCountCount() const { return count_; } // for debugging only - -private: - mutable unsigned count_; -}; - -#define RefCountable virtual RefCountable_ - template inline std::ostream &operator <<(std::ostream &os, const RefCount &p) { if (p != NULL) - return os << p.getRaw() << '*' << p->RefCountCount(); + return os << p.getRaw() << '*' << p->LockCount(); else return os << "NULL"; } === renamed file 'test-suite/refcount.cc' => 'src/base/testRefCount.cc' --- test-suite/refcount.cc 2012-09-01 14:38:36 +0000 +++ src/base/testRefCount.cc 2012-10-26 09:08:12 +0000 @@ -1,4 +1,3 @@ - /* * DEBUG: section -- Refcount allocator * AUTHOR: Robert Collins @@ -32,7 +31,9 @@ */ #include "squid.h" -#include "RefCount.h" +#include "base/RefCount.h" + +// XXX: upgrade these tests to CPPUnit testing framework class _ToRefCount :public RefCountable { === modified file 'src/clientStream.h' --- src/clientStream.h 2012-10-03 17:32:57 +0000 +++ src/clientStream.h 2012-10-26 10:01:15 +0000 @@ -32,8 +32,8 @@ #ifndef SQUID_CLIENTSTREAM_H #define SQUID_CLIENTSTREAM_H +#include "base/RefCount.h" #include "dlink.h" -#include "RefCount.h" #include "StoreIOBuffer.h" /** @@ -96,7 +96,7 @@ */ /// \ingroup ClientStreamAPI -typedef RefCount ClientStreamData; +typedef RefCount ClientStreamData; class clientStreamNode; class ClientHttpRequest; === modified file 'src/client_side.h' --- src/client_side.h 2012-10-04 00:23:44 +0000 +++ src/client_side.h 2012-10-26 09:40:52 +0000 @@ -34,13 +34,13 @@ #define SQUID_CLIENTSIDE_H #include "base/AsyncJob.h" +#include "base/RefCount.h" #include "BodyPipe.h" #include "comm.h" #include "CommCalls.h" #include "HttpRequest.h" #include "HttpControlMsg.h" #include "HttpParser.h" -#include "RefCount.h" #include "StoreIOBuffer.h" #if USE_AUTH #include "auth/UserRequest.h" === modified file 'src/client_side_reply.h' --- src/client_side_reply.h 2012-09-10 12:49:35 +0000 +++ src/client_side_reply.h 2012-10-26 10:06:15 +0000 @@ -31,10 +31,10 @@ #ifndef SQUID_CLIENTSIDEREPLY_H #define SQUID_CLIENTSIDEREPLY_H +#include "base/RefCount.h" #include "client_side_request.h" #include "clientStream.h" #include "HttpHeader.h" -#include "RefCount.h" #include "RequestFlags.h" #include "StoreClient.h" === modified file 'src/comm/Connection.h' --- src/comm/Connection.h 2012-09-04 14:38:44 +0000 +++ src/comm/Connection.h 2012-10-26 09:35:54 +0000 @@ -37,12 +37,12 @@ #ifndef _SQUIDCONNECTIONDETAIL_H_ #define _SQUIDCONNECTIONDETAIL_H_ +#include "base/RefCount.h" #include "comm/forward.h" #include "defines.h" #include "hier_code.h" #include "ip/Address.h" #include "MemPool.h" -#include "RefCount.h" #include "typedefs.h" #if USE_SQUID_EUI #include "eui/Eui48.h" === modified file 'src/comm/forward.h' --- src/comm/forward.h 2011-06-18 00:12:51 +0000 +++ src/comm/forward.h 2012-10-26 09:35:28 +0000 @@ -2,7 +2,7 @@ #define _SQUID_COMM_FORWARD_H #include "Array.h" -#include "RefCount.h" +#include "base/RefCount.h" namespace Comm { === modified file 'src/esi/Element.h' --- src/esi/Element.h 2012-09-01 14:38:36 +0000 +++ src/esi/Element.h 2012-10-26 10:06:22 +0000 @@ -31,9 +31,9 @@ #ifndef SQUID_ESIELEMENT_H #define SQUID_ESIELEMENT_H +#include "base/RefCount.h" #include "Debug.h" #include "esi/Segment.h" -#include "RefCount.h" typedef enum { ESI_PROCESS_COMPLETE = 0, === modified file 'src/esi/Parser.h' --- src/esi/Parser.h 2012-09-01 14:38:36 +0000 +++ src/esi/Parser.h 2012-10-26 10:06:35 +0000 @@ -40,8 +40,7 @@ virtual ~ESIParserClient() {}; }; -/* for RefCountable */ -#include "RefCount.h" +#include "base/RefCount.h" class ESIParser : public RefCountable { === modified file 'src/esi/Segment.h' --- src/esi/Segment.h 2012-09-21 14:57:30 +0000 +++ src/esi/Segment.h 2012-10-26 10:06:44 +0000 @@ -35,9 +35,9 @@ * or perhaps use membuffers here? */ +#include "base/RefCount.h" #include "cbdata.h" #include "defines.h" -#include "RefCount.h" #include "SquidString.h" class ESISegment : public RefCountable === modified file 'src/format/Format.h' --- src/format/Format.h 2012-07-17 14:25:06 +0000 +++ src/format/Format.h 2012-10-26 09:36:45 +0000 @@ -1,7 +1,7 @@ #ifndef _SQUID_FORMAT_FORMAT_H #define _SQUID_FORMAT_FORMAT_H -#include "RefCount.h" +#include "base/RefCount.h" /* * Squid configuration allows users to define custom formats in * several components. === modified file 'src/forward.h' --- src/forward.h 2012-09-21 14:57:30 +0000 +++ src/forward.h 2012-10-26 09:41:24 +0000 @@ -2,13 +2,13 @@ #define SQUID_FORWARD_H #include "Array.h" +#include "base/RefCount.h" #include "comm.h" #include "comm/Connection.h" #include "err_type.h" #include "fde.h" #include "HttpStatusCode.h" #include "ip/Address.h" -#include "RefCount.h" /* forward decls */ === modified file 'src/fs/rock/RockSwapDir.cc' --- src/fs/rock/RockSwapDir.cc 2012-10-16 00:18:09 +0000 +++ src/fs/rock/RockSwapDir.cc 2012-10-26 10:11:37 +0000 @@ -217,7 +217,7 @@ // XXX: SwapDirs aren't refcounted. We make IORequestor calls, which // are refcounted. We up our count once to avoid implicit delete's. - RefCountReference(); + lock(); Must(!map); map = new DirMap(path); === modified file 'src/fs/ufs/RebuildState.h' --- src/fs/ufs/RebuildState.h 2012-09-06 14:22:03 +0000 +++ src/fs/ufs/RebuildState.h 2012-10-26 09:48:39 +0000 @@ -30,7 +30,7 @@ #ifndef SQUID_FS_UFS_REBUILDSTATE_H #define SQUID_FS_UFS_REBUILDSTATE_H -#include "RefCount.h" +#include "base/RefCount.h" #include "UFSSwapDir.h" #include "UFSSwapLogParser.h" #include "store_rebuild.h" === modified file 'src/ipc/Request.h' --- src/ipc/Request.h 2012-09-01 14:38:36 +0000 +++ src/ipc/Request.h 2012-10-26 09:56:41 +0000 @@ -6,8 +6,8 @@ #ifndef SQUID_IPC_REQUEST_H #define SQUID_IPC_REQUEST_H +#include "base/RefCount.h" #include "ipc/forward.h" -#include "RefCount.h" namespace Ipc { === modified file 'src/ipc/Response.h' --- src/ipc/Response.h 2012-09-01 14:38:36 +0000 +++ src/ipc/Response.h 2012-10-26 09:57:16 +0000 @@ -6,8 +6,8 @@ #ifndef SQUID_IPC_RESPONSE_H #define SQUID_IPC_RESPONSE_H +#include "base/RefCount.h" #include "ipc/forward.h" -#include "RefCount.h" namespace Ipc { === modified file 'src/ipc/mem/Pointer.h' --- src/ipc/mem/Pointer.h 2012-09-01 14:38:36 +0000 +++ src/ipc/mem/Pointer.h 2012-10-26 09:45:11 +0000 @@ -4,9 +4,9 @@ #ifndef SQUID_IPC_MEM_POINTER_H #define SQUID_IPC_MEM_POINTER_H +#include "base/RefCount.h" #include "base/TextException.h" #include "ipc/mem/Segment.h" -#include "RefCount.h" namespace Ipc { === modified file 'src/log/Formats.h' --- src/log/Formats.h 2012-09-21 09:49:04 +0000 +++ src/log/Formats.h 2012-10-26 09:54:42 +0000 @@ -2,7 +2,7 @@ #define _SQUID_LOG_FORMATS_H #include "AccessLogEntry.h" -#include "RefCount.h" +#include "base/RefCount.h" typedef RefCount AccessLogEntryPointer; class AccessLogEntry; === modified file 'src/mgr/QueryParam.h' --- src/mgr/QueryParam.h 2012-09-01 14:38:36 +0000 +++ src/mgr/QueryParam.h 2012-10-26 09:56:54 +0000 @@ -6,8 +6,8 @@ #ifndef SQUID_MGR_QUERY_PARAM_H #define SQUID_MGR_QUERY_PARAM_H +#include "base/RefCount.h" #include "ipc/forward.h" -#include "RefCount.h" namespace Mgr { === modified file 'src/mgr/forward.h' --- src/mgr/forward.h 2012-09-01 14:38:36 +0000 +++ src/mgr/forward.h 2012-10-26 09:38:44 +0000 @@ -6,7 +6,7 @@ #ifndef SQUID_MGR_FORWARD_H #define SQUID_MGR_FORWARD_H -#include "RefCount.h" +#include "base/RefCount.h" namespace Mgr { === modified file 'src/ssl/ErrorDetailManager.h' --- src/ssl/ErrorDetailManager.h 2012-08-28 13:00:30 +0000 +++ src/ssl/ErrorDetailManager.h 2012-10-26 10:06:56 +0000 @@ -1,9 +1,9 @@ #ifndef _SQUID_SSL_ERRORDETAILMANAGER_H #define _SQUID_SSL_ERRORDETAILMANAGER_H +#include "base/RefCount.h" #include "ssl/gadgets.h" #include "ssl/support.h" -#include "RefCount.h" #include "SquidString.h" #if HAVE_MAP === modified file 'test-suite/Makefile.am' --- test-suite/Makefile.am 2012-10-05 13:10:15 +0000 +++ test-suite/Makefile.am 2012-10-26 09:08:57 +0000 @@ -30,7 +30,6 @@ syntheticoperators \ VirtualDeleteOperator \ StackTest \ - refcount\ splay\ MemPoolTest\ mem_node_test\ @@ -43,7 +42,6 @@ MemPoolTest\ mem_node_test\ mem_hdr_test \ - refcount\ splay \ StackTest \ syntheticoperators \ @@ -86,8 +84,6 @@ MemPoolTest_SOURCES = MemPoolTest.cc -refcount_SOURCES = refcount.cc - splay_SOURCES = splay.cc StackTest_SOURCES = StackTest.cc $(DEBUG_SOURCE)