You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by ca...@apache.org on 2008/01/16 20:52:47 UTC

svn commit: r612558 - in /logging/log4cxx/trunk/src/main: cpp/ include/log4cxx/ include/log4cxx/helpers/ include/log4cxx/rolling/ include/log4cxx/spi/

Author: carnold
Date: Wed Jan 16 11:52:43 2008
New Revision: 612558

URL: http://svn.apache.org/viewvc?rev=612558&view=rev
Log:
LOGCXX-219: Avoid C4251 template needs dll-interface warning with VC

Modified:
    logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp
    logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp
    logging/log4cxx/trunk/src/main/cpp/properties.cpp
    logging/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp
    logging/log4cxx/trunk/src/main/include/log4cxx/appender.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/appenderattachableimpl.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/charsetencoder.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/inetaddress.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstream.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstreamwriter.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/properties.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/resourcebundle.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socket.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socketimpl.h
    logging/log4cxx/trunk/src/main/include/log4cxx/helpers/writer.h
    logging/log4cxx/trunk/src/main/include/log4cxx/hierarchy.h
    logging/log4cxx/trunk/src/main/include/log4cxx/layout.h
    logging/log4cxx/trunk/src/main/include/log4cxx/level.h
    logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.h.in
    logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.hw
    logging/log4cxx/trunk/src/main/include/log4cxx/logger.h
    logging/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h
    logging/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h
    logging/log4cxx/trunk/src/main/include/log4cxx/rolling/action.h
    logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h
    logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicy.h
    logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicybase.h
    logging/log4cxx/trunk/src/main/include/log4cxx/rolling/triggeringpolicy.h
    logging/log4cxx/trunk/src/main/include/log4cxx/spi/appenderattachable.h
    logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h
    logging/log4cxx/trunk/src/main/include/log4cxx/spi/filter.h
    logging/log4cxx/trunk/src/main/include/log4cxx/spi/hierarchyeventlistener.h
    logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerfactory.h
    logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerrepository.h
    logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggingevent.h
    logging/log4cxx/trunk/src/main/include/log4cxx/stream.h
    logging/log4cxx/trunk/src/main/include/log4cxx/writerappender.h

Modified: logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp Wed Jan 16 11:52:43 2008
@@ -46,7 +46,9 @@
 
 Hierarchy::Hierarchy() : 
 pool(),
-mutex(pool)
+mutex(pool),
+loggers(new LoggerMap()),
+provisionNodes(new ProvisionNodeMap())
 {
         synchronized sync(mutex);
         root = new RootLogger(pool, Level::getDebug());
@@ -61,6 +63,8 @@
 
 Hierarchy::~Hierarchy()
 {
+    delete loggers;
+    delete provisionNodes;
 }
 
 void Hierarchy::addRef() const {
@@ -87,7 +91,7 @@
 void Hierarchy::clear()
 {
         synchronized sync(mutex);
-        loggers.clear();
+        loggers->clear();
 }
 
 void Hierarchy::emitNoAppenderWarning(const LoggerPtr& logger)
@@ -114,8 +118,8 @@
         synchronized sync(mutex);
 
         LoggerPtr logger;
-        LoggerMap::iterator it = loggers.find(name);
-        if (it != loggers.end())
+        LoggerMap::iterator it = loggers->find(name);
+        if (it != loggers->end())
         {
                 logger = it->second;
         }
@@ -203,9 +207,9 @@
 {
         synchronized sync(mutex);
 
-        LoggerMap::iterator it = loggers.find(name);
+        LoggerMap::iterator it = loggers->find(name);
 
-        if (it != loggers.end())
+        if (it != loggers->end())
         {
                 return it->second;
         }
@@ -213,13 +217,13 @@
         {
                 LoggerPtr logger(factory->makeNewLoggerInstance(pool, name));
                 logger->setHierarchy(this);
-                loggers.insert(LoggerMap::value_type(name, logger));
+                loggers->insert(LoggerMap::value_type(name, logger));
 
-                ProvisionNodeMap::iterator it2 = provisionNodes.find(name);
-                if (it2 != provisionNodes.end())
+                ProvisionNodeMap::iterator it2 = provisionNodes->find(name);
+                if (it2 != provisionNodes->end())
                 {
                         updateChildren(it2->second, logger);
-                        provisionNodes.erase(it2);
+                        provisionNodes->erase(it2);
                 }
 
                 updateParents(logger);
@@ -233,9 +237,9 @@
         synchronized sync(mutex);
 
         LoggerList v;
-        LoggerMap::const_iterator it, itEnd = loggers.end();
+        LoggerMap::const_iterator it, itEnd = loggers->end();
 
-        for (it = loggers.begin(); it != itEnd; it++)
+        for (it = loggers->begin(); it != itEnd; it++)
         {
                 v.push_back(it->second);
         }
@@ -332,8 +336,8 @@
         {
                 LogString substr = name.substr(0, i);
 
-                LoggerMap::iterator it = loggers.find(substr);
-                if(it != loggers.end())
+                LoggerMap::iterator it = loggers->find(substr);
+                if(it != loggers->end())
                 {
                         parentFound = true;
                         logger->parent = it->second;
@@ -341,15 +345,15 @@
                 }
                 else
                 {
-                        ProvisionNodeMap::iterator it2 = provisionNodes.find(substr);
-                        if (it2 != provisionNodes.end())
+                        ProvisionNodeMap::iterator it2 = provisionNodes->find(substr);
+                        if (it2 != provisionNodes->end())
                         {
                                 it2->second.push_back(logger);
                         }
                         else
                         {
                                 ProvisionNode node(1, logger);
-                                provisionNodes.insert(
+                                provisionNodes->insert(
                                         ProvisionNodeMap::value_type(substr, node));
                         }
                 }

Modified: logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp Wed Jan 16 11:52:43 2008
@@ -52,6 +52,7 @@
 
 LoggingEvent::LoggingEvent() :
    ndc(0),
+   mdcCopy(0),
    properties(0),
    ndcLookupRequired(true),
    mdcCopyLookupRequired(true),
@@ -65,6 +66,7 @@
    logger(logger1),
    level(level1),
    ndc(0),
+   mdcCopy(0),
    properties(0),
    ndcLookupRequired(true),
    mdcCopyLookupRequired(true),
@@ -77,6 +79,7 @@
 LoggingEvent::~LoggingEvent()
 {
         delete ndc;
+        delete mdcCopy;
         delete properties;
 }
 
@@ -106,11 +109,11 @@
 {
    // Note the mdcCopy is used if it exists. Otherwise we use the MDC
     // that is associated with the thread.
-    if (!mdcCopy.empty())
+    if (mdcCopy != 0 && !mdcCopy->empty())
         {
-                MDC::Map::const_iterator it = mdcCopy.find(key);
+                MDC::Map::const_iterator it = mdcCopy->find(key);
 
-                if (it != mdcCopy.end())
+                if (it != mdcCopy->end())
                 {
                         if (!it->second.empty())
                         {
@@ -128,10 +131,10 @@
 {
         std::set<LogString> set;
 
-        if (!mdcCopy.empty())
+        if (mdcCopy != 0 && !mdcCopy->empty())
         {
                 MDC::Map::const_iterator it;
-                for (it = mdcCopy.begin(); it != mdcCopy.end(); it++)
+                for (it = mdcCopy->begin(); it != mdcCopy->end(); it++)
                 {
                         set.insert(it->first);
 
@@ -157,7 +160,7 @@
         {
                 mdcCopyLookupRequired = false;
                 // the clone call is required for asynchronous logging.
-                mdcCopy = ThreadSpecificData::getCurrentThreadMap();
+                mdcCopy = new MDC::Map(ThreadSpecificData::getCurrentThreadMap());
         }
 }
 
@@ -290,10 +293,10 @@
       os.writeLong(timeStamp/1000, p);
       os.writeObject(logger->getName(), p);
       locationInfo.write(os, p);
-      if (mdcCopy.size() == 0) {
+      if (mdcCopy == 0 || mdcCopy->size() == 0) {
           os.writeByte(ObjectOutputStream::TC_NULL, p);
       } else {
-          os.writeObject(mdcCopy, p);
+          os.writeObject(*mdcCopy, p);
       }
       if (ndc == 0) {
           os.writeByte(ObjectOutputStream::TC_NULL, p);

Modified: logging/log4cxx/trunk/src/main/cpp/properties.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/properties.cpp?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/properties.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/properties.cpp Wed Jan 16 11:52:43 2008
@@ -314,10 +314,11 @@
         LexemType;
 };
 
-Properties::Properties() {
+Properties::Properties() : properties(new PropertyMap()) {
 }
 
 Properties::~Properties() {
+    delete properties;
 }
 
 LogString Properties::setProperty(const LogString& key, const LogString& value) {
@@ -326,8 +327,8 @@
 
 LogString Properties::put(const LogString& key, const LogString& value)
 {
-        LogString oldValue(properties[key]);
-        properties[key] = value;
+        LogString oldValue((*properties)[key]);
+        (*properties)[key] = value;
         //tcout << ASCII_STR("setting property key=") << key << ASCII_STR(", value=") << value << std::endl;
         return oldValue;
 }
@@ -338,8 +339,8 @@
 
 LogString Properties::get(const LogString& key) const
 {
-        std::map<LogString, LogString>::const_iterator it = properties.find(key);
-        return (it != properties.end()) ? it->second : LogString();
+        std::map<LogString, LogString>::const_iterator it = properties->find(key);
+        return (it != properties->end()) ? it->second : LogString();
 }
 
 void Properties::load(InputStreamPtr inStream) {
@@ -347,7 +348,7 @@
         InputStreamReaderPtr lineReader(
             new InputStreamReader(inStream, CharsetDecoder::getISOLatinDecoder()));
         LogString contents = lineReader->read(pool);
-        properties.clear();
+        properties->clear();
         PropertyParser parser;
         parser.parse(contents, *this);
 }
@@ -355,10 +356,10 @@
 std::vector<LogString> Properties::propertyNames() const
 {
         std::vector<LogString> names;
-        names.reserve(properties.size());
+        names.reserve(properties->size());
 
         std::map<LogString, LogString>::const_iterator it;
-        for (it = properties.begin(); it != properties.end(); it++)
+        for (it = properties->begin(); it != properties->end(); it++)
         {
                 const LogString& key = it->first;
                 names.push_back(key);

Modified: logging/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp Wed Jan 16 11:52:43 2008
@@ -74,10 +74,14 @@
 
 
 PropertyConfigurator::PropertyConfigurator()
-: loggerFactory(new DefaultLoggerFactory())
+: loggerFactory(new DefaultLoggerFactory()), registry(new std::map<LogString, AppenderPtr>())
 {
 }
 
+PropertyConfigurator::~PropertyConfigurator() {
+    delete registry;
+}
+
 void PropertyConfigurator::addRef() const {
 	ObjectImpl::addRef();
 }
@@ -169,7 +173,7 @@
 
         // We don't want to hold references to appenders preventing their
         // destruction.
-        registry.clear();
+        registry->clear();
 }
 
 void PropertyConfigurator::configureLoggerFactory(helpers::Properties& props)
@@ -438,10 +442,10 @@
 
 void PropertyConfigurator::registryPut(const AppenderPtr& appender)
 {
-        registry[appender->getName()] = appender;
+        (*registry)[appender->getName()] = appender;
 }
 
 AppenderPtr PropertyConfigurator::registryGet(const LogString& name)
 {
-        return registry[name];
+        return (*registry)[name];
 }

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/appender.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/appender.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/appender.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/appender.h Wed Jan 16 11:52:43 2008
@@ -42,9 +42,6 @@
     class Layout;
     typedef log4cxx::helpers::ObjectPtrT<Layout> LayoutPtr;
 
-    class Appender;
-    typedef log4cxx::helpers::ObjectPtrT<Appender> AppenderPtr;
-    typedef std::vector<AppenderPtr> AppenderList;
 
         /**
         Implement this interface for your own strategies for outputting log
@@ -132,6 +129,10 @@
        */
        virtual bool requiresLayout() const = 0;
    };
+
+    LOG4CXX_PTR_DEF(Appender)
+    LOG4CXX_LIST_DEF(AppenderList, AppenderPtr)
+
 }
 
 #endif //_LOG4CXX_APPENDER_H

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/appenderattachableimpl.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/appenderattachableimpl.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/appenderattachableimpl.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/appenderattachableimpl.h Wed Jan 16 11:52:43 2008
@@ -33,9 +33,6 @@
 
     namespace helpers
     {
-        class AppenderAttachableImpl;
-        typedef log4cxx::helpers::ObjectPtrT<AppenderAttachableImpl>
-                        AppenderAttachableImplPtr;
 
         class LOG4CXX_EXPORT AppenderAttachableImpl :
             public virtual spi::AppenderAttachable,
@@ -112,6 +109,9 @@
             AppenderAttachableImpl(const AppenderAttachableImpl&);
             AppenderAttachableImpl& operator=(const AppenderAttachableImpl&);
         };
+
+        LOG4CXX_PTR_DEF(AppenderAttachableImpl)
+
     }
 }
 

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/charsetencoder.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/charsetencoder.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/charsetencoder.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/charsetencoder.h Wed Jan 16 11:52:43 2008
@@ -25,10 +25,9 @@
 {
 
         namespace helpers {
-          class CharsetEncoder;
-          typedef helpers::ObjectPtrT<CharsetEncoder> CharsetEncoderPtr;
           class ByteBuffer;
-
+          class CharsetEncoder;
+          LOG4CXX_PTR_DEF(CharsetEncoder)
 
           /**
           *   An engine to transform LogStrings into bytes

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/inetaddress.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/inetaddress.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/inetaddress.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/inetaddress.h Wed Jan 16 11:52:43 2008
@@ -38,7 +38,8 @@
 
 
                 class InetAddress;
-                typedef ObjectPtrT<InetAddress> InetAddressPtr;
+                LOG4CXX_PTR_DEF(InetAddress)
+                LOG4CXX_LIST_DEF(InetAddressList, InetAddressPtr)
 
                 class LOG4CXX_EXPORT InetAddress : public ObjectImpl
                 {
@@ -52,7 +53,7 @@
 
                         /** Determines all the IP addresses of a host, given the host's name.
                         */
-                        static std::vector<InetAddressPtr> getAllByName(const LogString& host);
+                        static InetAddressList getAllByName(const LogString& host);
 
                         /** Determines the IP address of a host, given the host's name.
                         */

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstream.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstream.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstream.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstream.h Wed Jan 16 11:52:43 2008
@@ -51,7 +51,7 @@
                   OutputStream& operator=(const OutputStream&);
           };
 
-          typedef helpers::ObjectPtrT<OutputStream> OutputStreamPtr;
+          LOG4CXX_PTR_DEF(OutputStream)
         } // namespace helpers
 
 }  //namespace log4cxx

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstreamwriter.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstreamwriter.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstreamwriter.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/outputstreamwriter.h Wed Jan 16 11:52:43 2008
@@ -57,7 +57,7 @@
                   OutputStreamWriter& operator=(const OutputStreamWriter&);
           };
 
-          typedef helpers::ObjectPtrT<Writer> OutputStreamWriterPtr;
+          LOG4CXX_PTR_DEF(OutputStreamWriter)
         } // namespace helpers
 
 }  //namespace log4cxx

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/properties.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/properties.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/properties.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/properties.h Wed Jan 16 11:52:43 2008
@@ -34,7 +34,7 @@
                 {
                 private:
                         typedef std::map<LogString, LogString> PropertyMap;
-                        PropertyMap properties;
+                        PropertyMap* properties;
                         Properties(const Properties&);
                         Properties& operator=(const Properties&);
 

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/resourcebundle.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/resourcebundle.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/resourcebundle.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/resourcebundle.h Wed Jan 16 11:52:43 2008
@@ -28,7 +28,7 @@
                 class Locale;
 
                 class ResourceBundle;
-                typedef ObjectPtrT<ResourceBundle> ResourceBundlePtr;
+                LOG4CXX_PTR_DEF(ResourceBundle)
 
                 /**
                 Resource bundles contain locale-specific objects

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socket.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socket.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socket.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socket.h Wed Jan 16 11:52:43 2008
@@ -107,9 +107,7 @@
                         SocketImplPtr socketImpl;
                 };
                 
-                class Socket;
-                typedef helpers::ObjectPtrT<Socket> SocketPtr;
-
+                LOG4CXX_PTR_DEF(Socket)
                 
         } // namespace helpers
 } // namespace log4cxx

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socketimpl.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socketimpl.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socketimpl.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/socketimpl.h Wed Jan 16 11:52:43 2008
@@ -161,7 +161,7 @@
 
 
                 class SocketImpl;
-                typedef helpers::ObjectPtrT<SocketImpl> SocketImplPtr;
+                LOG4CXX_PTR_DEF(SocketImpl)
 
                 /** @brief Default Socket Implementation.
 

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/writer.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/writer.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/writer.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/writer.h Wed Jan 16 11:52:43 2008
@@ -50,7 +50,7 @@
                   Writer& operator=(const Writer&);
           };
 
-          typedef helpers::ObjectPtrT<Writer> WriterPtr;
+          LOG4CXX_PTR_DEF(Writer);
         } // namespace helpers
 
 }  //namespace log4cxx

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/hierarchy.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/hierarchy.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/hierarchy.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/hierarchy.h Wed Jan 16 11:52:43 2008
@@ -72,10 +72,10 @@
             spi::HierarchyEventListenerList listeners;
 
             typedef std::map<LogString, LoggerPtr> LoggerMap;
-            LoggerMap loggers;
+            LoggerMap* loggers;
 
             typedef std::map<LogString, ProvisionNode> ProvisionNodeMap;
-            ProvisionNodeMap provisionNodes;
+            ProvisionNodeMap* provisionNodes;
 
             LoggerPtr root;
 

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/layout.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/layout.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/layout.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/layout.h Wed Jan 16 11:52:43 2008
@@ -21,19 +21,11 @@
 #include <log4cxx/helpers/objectimpl.h>
 #include <log4cxx/helpers/objectptr.h>
 #include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/spi/loggingevent.h>
 
 
 namespace log4cxx
 {
-    class Layout;
-    typedef helpers::ObjectPtrT<Layout> LayoutPtr;
-
-    namespace spi
-    {
-                class LoggingEvent;
-        typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr;
-    }
-
         /**
         Extend this abstract class to create your own log layout format.
         */
@@ -89,6 +81,7 @@
                 */
                 virtual bool ignoresThrowable() const = 0;
         };
+        LOG4CXX_PTR_DEF(Layout)
 }
 
 #endif // _LOG4CXX_LAYOUT_H

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/level.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/level.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/level.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/level.h Wed Jan 16 11:52:43 2008
@@ -28,8 +28,8 @@
 namespace log4cxx
 {
     class Level;
-        /** smart pointer to a Level instance */
-    typedef helpers::ObjectPtrT<Level> LevelPtr;
+    /** smart pointer to a Level instance */
+    LOG4CXX_PTR_DEF(Level)
 
         /**
         Defines the minimum set of levels recognized by the system, that is

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.h.in
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.h.in?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.h.in (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.h.in Wed Jan 16 11:52:43 2008
@@ -37,6 +37,9 @@
 #define LOG4CXX_HAS_WCHAR_T LOG4CXX_WCHAR_T_API
 
 #define LOG4CXX_EXPORT
+#define LOG4CXX_PTR_DEF(T) typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr
+#define LOG4CXX_LIST_DEF(N, T) typedef std::vector<T> N
+
 
 typedef long long log4cxx_int64_t;
 typedef log4cxx_int64_t log4cxx_time_t;

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.hw
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.hw?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.hw (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/log4cxx.hw Wed Jan 16 11:52:43 2008
@@ -50,14 +50,36 @@
 typedef int log4cxx_status_t;
 typedef unsigned int log4cxx_uint32_t;
 
+//  definitions used when using static library
 #if defined(LOG4CXX_STATIC)
 #define LOG4CXX_EXPORT
+#define LOG4CXX_PTR_DEF(T) typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr
+#define LOG4CXX_LIST_DEF(N, T) typedef std::vector<T> N
+
+//   definitions used when building DLL
+#elif defined(LOG4CXX)
+#define LOG4CXX_EXPORT __declspec(dllexport)
+#define LOG4CXX_PTR_DEF(T) \
+template class LOG4CXX_EXPORT log4cxx::helpers::ObjectPtrT<T>; \
+typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr;
+
+#define LOG4CXX_LIST_DEF(N, T) \
+template class LOG4CXX_EXPORT std::allocator<T>; \
+template class LOG4CXX_EXPORT std::vector<T>; \
+typedef std::vector<T> N;
+
 #else
-#ifdef LOG4CXX
-        #define LOG4CXX_EXPORT __declspec(dllexport)
-#else
-        #define LOG4CXX_EXPORT __declspec(dllimport)
-#endif
+//    definitions used when using DLL
+#define LOG4CXX_EXPORT __declspec(dllimport)
+#define LOG4CXX_PTR_DEF(T) \
+extern template class LOG4CXX_EXPORT log4cxx::helpers::ObjectPtrT<T>; \
+typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr;
+
+#define LOG4CXX_LIST_DEF(N, T) \
+extern template class LOG4CXX_EXPORT std::allocator<T>; \
+extern template class LOG4CXX_EXPORT std::vector<T>; \
+typedef std::vector<T> N;
+
 #endif
 
 #define LOG4CXX_LOCALE_ENCODING_UTF8 0

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/logger.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/logger.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/logger.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/logger.h Wed Jan 16 11:52:43 2008
@@ -18,6 +18,11 @@
 #ifndef _LOG4CXX_LOGGER_H
 #define _LOG4CXX_LOGGER_H
 
+#if defined(_MSC_VER)
+#pragma warning ( push )
+#pragma warning ( disable: 4231 )
+#endif
+
 #include <log4cxx/helpers/appenderattachableimpl.h>
 #include <log4cxx/helpers/objectimpl.h>
 #include <log4cxx/level.h>
@@ -38,7 +43,7 @@
 
     class Logger;
     /** smart pointer to a Logger class */
-    typedef helpers::ObjectPtrT<Logger> LoggerPtr;
+    LOG4CXX_PTR_DEF(Logger)
 
 
     /**
@@ -755,6 +760,7 @@
         log4cxx::helpers::Mutex mutex;
         friend class log4cxx::helpers::synchronized;
    };
+   LOG4CXX_LIST_DEF(LoggerList, LoggerPtr)
    
 }
 
@@ -938,5 +944,10 @@
         logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2, p3); }}
 
 /**@}*/
+
+#if defined(_MSC_VER)
+#pragma warning ( pop )
+#endif
+
 
 #endif //_LOG4CXX_LOGGER_H

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/patternlayout.h Wed Jan 16 11:52:43 2008
@@ -329,12 +329,14 @@
                 /**
                  * Pattern converters.
                  */
-                std::vector<log4cxx::pattern::LoggingEventPatternConverterPtr> patternConverters;
+                LOG4CXX_LIST_DEF(LoggingEventPatternConverterList, log4cxx::pattern::LoggingEventPatternConverterPtr)
+                LoggingEventPatternConverterList patternConverters;
 
                /**
                 * Field widths and alignment corresponding to pattern converters.
                 */
-                std::vector<log4cxx::pattern::FormattingInfoPtr> patternFields;
+                LOG4CXX_LIST_DEF(FormattingInfoList, log4cxx::pattern::FormattingInfoPtr)
+                FormattingInfoList patternFields;
 
 
         public:

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h Wed Jan 16 11:52:43 2008
@@ -91,7 +91,7 @@
       /**
       Used internally to keep track of configured appenders.
       */
-      std::map<LogString, AppenderPtr> registry;
+      std::map<LogString, AppenderPtr>* registry;
 
       /**
       Used to create new instances of logger
@@ -105,6 +105,7 @@
       END_LOG4CXX_CAST_MAP()
 
       PropertyConfigurator();
+      virtual ~PropertyConfigurator();
       void addRef() const;
       void releaseRef() const;
 

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/rolling/action.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rolling/action.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/rolling/action.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/rolling/action.h Wed Jan 16 11:52:43 2008
@@ -82,7 +82,7 @@
 
         };
 
-        typedef log4cxx::helpers::ObjectPtrT<Action> ActionPtr;
+        LOG4CXX_PTR_DEF(Action)
 
     }
 }

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingfileappender.h Wed Jan 16 11:52:43 2008
@@ -186,7 +186,7 @@
 
         };
 
-        typedef log4cxx::helpers::ObjectPtrT<RollingFileAppender> RollingFileAppenderPtr;
+        LOG4CXX_PTR_DEF(RollingFileAppender)
 
     }
 }

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicy.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicy.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicy.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicy.h Wed Jan 16 11:52:43 2008
@@ -72,7 +72,7 @@
           log4cxx::helpers::Pool& p) = 0;
         };
 
-        typedef log4cxx::helpers::ObjectPtrT<RollingPolicy> RollingPolicyPtr;
+      LOG4CXX_PTR_DEF(RollingPolicy)
 
     }
 }

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicybase.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicybase.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicybase.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/rolling/rollingpolicybase.h Wed Jan 16 11:52:43 2008
@@ -51,12 +51,14 @@
           /**
            * File name pattern converters.
            */
-          std::vector<log4cxx::pattern::PatternConverterPtr> patternConverters;
+          LOG4CXX_LIST_DEF(PatternConverterList, log4cxx::pattern::PatternConverterPtr)
+          PatternConverterList patternConverters;
 
           /**
            * File name field specifiers.
            */
-          std::vector<log4cxx::pattern::FormattingInfoPtr> patternFields;
+          LOG4CXX_LIST_DEF(FormattingInfoList, log4cxx::pattern::FormattingInfoPtr)
+          FormattingInfoList patternFields;
 
           /**
            * File name pattern.

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/rolling/triggeringpolicy.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/rolling/triggeringpolicy.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/rolling/triggeringpolicy.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/rolling/triggeringpolicy.h Wed Jan 16 11:52:43 2008
@@ -22,15 +22,11 @@
 
 #include <log4cxx/spi/optionhandler.h>
 #include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/spi/loggingevent.h>
+#include <log4cxx/appender.h>
 
 namespace log4cxx {
     class File;
-    class Appender;
-    typedef log4cxx::helpers::ObjectPtrT<Appender> AppenderPtr;
-    namespace spi {
-      class LoggingEvent;
-      typedef log4cxx::helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr;
-    }
 
     namespace rolling {
 
@@ -75,7 +71,7 @@
 
         };
 
-        typedef log4cxx::helpers::ObjectPtrT<TriggeringPolicy> TriggeringPolicyPtr;
+        LOG4CXX_PTR_DEF(TriggeringPolicy)
 
 
     }

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/appenderattachable.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/appenderattachable.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/appenderattachable.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/appenderattachable.h Wed Jan 16 11:52:43 2008
@@ -26,10 +26,6 @@
 
 namespace log4cxx
 {
-    // Forward Declarations
-    class Appender;
-    typedef helpers::ObjectPtrT<Appender> AppenderPtr;
-    typedef std::vector<AppenderPtr> AppenderList;
 
     namespace spi
     {

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h Wed Jan 16 11:52:43 2008
@@ -19,18 +19,12 @@
 #define _LOG4CXX_SPI_ERROR_HANDLER_H
 
 #include <log4cxx/spi/optionhandler.h>
-#include <log4cxx/helpers/objectptr.h>
-#include <log4cxx/helpers/object.h>
 #include <log4cxx/helpers/exception.h>
+#include <log4cxx/appender.h>
+#include <log4cxx/spi/loggingevent.h>
 
 namespace log4cxx
 {
-    class Appender;
-    typedef log4cxx::helpers::ObjectPtrT<Appender> AppenderPtr;
-
-    class Logger;
-    typedef helpers::ObjectPtrT<Logger> LoggerPtr;
-
     namespace spi
         {
                 class ErrorCode
@@ -48,11 +42,6 @@
                         };
                 };
 
-                class LoggingEvent;
-                typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr;
-
-                class ErrorHandler;
-                typedef log4cxx::helpers::ObjectPtrT<ErrorHandler> ErrorHandlerPtr;
 
                 /**
                 Appenders may delegate their error handling to
@@ -120,6 +109,8 @@
                         */
                         virtual void setBackupAppender(const AppenderPtr& appender) = 0;
                 };
+
+                LOG4CXX_PTR_DEF(ErrorHandler)
         }  //namespace spi
 } //namespace log4cxx
 

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/filter.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/filter.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/filter.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/filter.h Wed Jan 16 11:52:43 2008
@@ -21,16 +21,15 @@
 #include <log4cxx/helpers/objectptr.h>
 #include <log4cxx/helpers/objectimpl.h>
 #include <log4cxx/spi/optionhandler.h>
+#include <log4cxx/spi/loggingevent.h>
 
 namespace log4cxx
 {
         namespace spi
         {
                 class Filter;
-                typedef helpers::ObjectPtrT<Filter> FilterPtr;
+                LOG4CXX_PTR_DEF(Filter);
 
-                class LoggingEvent;
-        typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr;
 
         /**
         Users should extend this class to implement customized logging

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/hierarchyeventlistener.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/hierarchyeventlistener.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/hierarchyeventlistener.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/hierarchyeventlistener.h Wed Jan 16 11:52:43 2008
@@ -18,23 +18,12 @@
 #ifndef _LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H
 #define _LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H
 
-#include <log4cxx/helpers/object.h>
-#include <log4cxx/helpers/objectptr.h>
-#include <vector>
+#include <log4cxx/appender.h>
 
 namespace log4cxx
 {
-        class Logger;
-        typedef helpers::ObjectPtrT<Logger> LoggerPtr;
-        class Appender;
-        typedef helpers::ObjectPtrT<Appender> AppenderPtr;
-
         namespace spi
         {
-                class HierarchyEventListener;
-                typedef log4cxx::helpers::ObjectPtrT<HierarchyEventListener>
-                        HierarchyEventListenerPtr;
-                typedef std::vector<HierarchyEventListenerPtr> HierarchyEventListenerList;
 
                 /** Listen to events occuring within a Hierarchy.*/
                 class LOG4CXX_EXPORT HierarchyEventListener :
@@ -49,6 +38,8 @@
                         virtual void removeAppenderEvent(const LoggerPtr& logger,
                                 const AppenderPtr& appender) = 0;
                 };
+                LOG4CXX_PTR_DEF(HierarchyEventListener)
+                LOG4CXX_LIST_DEF(HierarchyEventListenerList, HierarchyEventListenerPtr)
         }  // namespace spi
 } // namespace log4cxx
 

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerfactory.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerfactory.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerfactory.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerfactory.h Wed Jan 16 11:52:43 2008
@@ -43,7 +43,7 @@
                             const LogString& name) const = 0;
                 };
 
-                typedef helpers::ObjectPtrT<LoggerFactory> LoggerFactoryPtr;
+                LOG4CXX_PTR_DEF(LoggerFactory)
 
 
         }  // namespace spi

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerrepository.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerrepository.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerrepository.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggerrepository.h Wed Jan 16 11:52:43 2008
@@ -18,32 +18,16 @@
 #ifndef _LOG4CXX_SPI_LOG_REPOSITORY_H
 #define _LOG4CXX_SPI_LOG_REPOSITORY_H
 
-#include <log4cxx/helpers/objectptr.h>
-#include <log4cxx/helpers/object.h>
-#include <log4cxx/logstring.h>
-#include <vector>
+#include <log4cxx/appender.h>
 #include <log4cxx/spi/loggerfactory.h>
+#include <log4cxx/spi/hierarchyeventlistener.h>
+#include <log4cxx/level.h>
 
 namespace log4cxx
 {
-        class Level;
-        typedef helpers::ObjectPtrT<Level> LevelPtr;
-
-        class Logger;
-        typedef helpers::ObjectPtrT<Logger> LoggerPtr;
-
-        typedef std::vector<LoggerPtr> LoggerList;
-
-        class Appender;
-        typedef log4cxx::helpers::ObjectPtrT<Appender> AppenderPtr;
-
-        namespace spi
+    LOG4CXX_LIST_DEF(LoggerList, LoggerPtr)
+    namespace spi
         {
-             class HierarchyEventListener;
-             typedef log4cxx::helpers::ObjectPtrT<HierarchyEventListener>
-                        HierarchyEventListenerPtr;
-
-
             /**
             A <code>LoggerRepository</code> is used to create and retrieve
             <code>Loggers</code>. The relation between loggers in a repository
@@ -115,7 +99,7 @@
 
             }; // class LoggerRepository
 
-            typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr;
+            LOG4CXX_PTR_DEF(LoggerRepository)
 
         }  // namespace spi
 } // namespace log4cxx

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggingevent.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggingevent.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggingevent.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/loggingevent.h Wed Jan 16 11:52:43 2008
@@ -211,7 +211,7 @@
                         mutable LogString* ndc;
 
                         /** The mapped diagnostic context (MDC) of logging event. */
-                        mutable MDC::Map mdcCopy;
+                        mutable MDC::Map* mdcCopy;
 
                         /**
                         * A map of String keys and String values.

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/stream.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/stream.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/stream.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/stream.h Wed Jan 16 11:52:43 2008
@@ -178,7 +178,7 @@
              *   Minimal extension of std::ios_base to allow creation
              *     of embedded IO states.
              */
-            class logstream_ios_base : public std::ios_base {
+            class LOG4CXX_EXPORT logstream_ios_base : public std::ios_base {
             public:
                 logstream_ios_base(std::ios_base::fmtflags initval, 
                     int initsize);

Modified: logging/log4cxx/trunk/src/main/include/log4cxx/writerappender.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/writerappender.h?rev=612558&r1=612557&r2=612558&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/writerappender.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/writerappender.h Wed Jan 16 11:52:43 2008
@@ -152,7 +152,7 @@
                     <code>encoding</code> property.  If the encoding value is
                     specified incorrectly the writer will be opened using the default
                     system encoding (an error message will be printed to the loglog.  */
-                virtual log4cxx::helpers::OutputStreamWriterPtr createWriter(
+                virtual log4cxx::helpers::WriterPtr createWriter(
                     log4cxx::helpers::OutputStreamPtr& os);
 
        public: