You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by wh...@apache.org on 2005/05/13 18:06:59 UTC

cvs commit: ws-axis/c/src/xml/xerces ParserLoader.cpp

whitlock    2005/05/13 09:06:59

  Modified:    c/build  buildTools.xml
               c/src/common AxisTrace.cpp AxisTrace.h
               c/src/engine SOAPTransportFactory.cpp XMLParserFactory.cpp
                        XMLParserFactory.h
               c/src/transport/axis3 ChannelFactory.cpp
                        HTTPTransportInstantiator.cpp
               c/src/transport/axis3/HTTPChannel
                        HTTPChannelInstantiator.cpp
               c/src/xml/xerces ParserLoader.cpp
  Log:
  AXISCPP-647 Fix multithreading problem in trace globals
  
  Revision  Changes    Path
  1.10      +1 -1      ws-axis/c/build/buildTools.xml
  
  Index: buildTools.xml
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/build/buildTools.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- buildTools.xml	16 Mar 2005 16:50:45 -0000	1.9
  +++ buildTools.xml	13 May 2005 16:06:58 -0000	1.10
  @@ -122,7 +122,7 @@
   					<compiler refid="AIXxlc"/>
   					<!-- Additional compiler flag for Client library on all platforms -->
   					<defineset>
  -						<define name="AXIS_CLIENT_LIB"/>
  +						<define name="AXIS_CLIENTC_LIB"/>
   						<define name="ENABLE_AXISTRACE" if="trace"/>
   					</defineset>
   					<includepath path="${dir.include}${path.separator}${dir.obj}/include"/>
  
  
  
  1.61      +8 -0      ws-axis/c/src/common/AxisTrace.cpp
  
  Index: AxisTrace.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/AxisTrace.cpp,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- AxisTrace.cpp	23 Mar 2005 15:44:58 -0000	1.60
  +++ AxisTrace.cpp	13 May 2005 16:06:58 -0000	1.61
  @@ -42,6 +42,14 @@
   enum AxisTraceState AxisTrace::m_bLoggingOn = STATE_UNINITIALISED;
   AxisFile *AxisTrace::m_fileTrace = NULL;
   
  +AxisTraceEntrypoints g_traceEntrypoints = {
  +    AxisTrace::traceLineInternal,
  +    AxisTrace::traceEntryInternal,
  +    AxisTrace::traceExitInternal,
  +    AxisTrace::traceCatchInternal,
  +    AxisTrace::isTraceOn
  +};
  +
   int AxisTrace::openFile ()
   {
       return initialise(g_pConfig->getAxisConfProperty(AXCONF_LOGPATH), STATE_ON);
  
  
  
  1.35      +11 -18    ws-axis/c/src/common/AxisTrace.h
  
  Index: AxisTrace.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/AxisTrace.h,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- AxisTrace.h	23 Mar 2005 15:44:58 -0000	1.34
  +++ AxisTrace.h	13 May 2005 16:06:58 -0000	1.35
  @@ -105,7 +105,7 @@
   	STATE_STARTUP
   };
   
  -class AxisTraceEntrypoints {
  +class STORAGE_CLASS_INFO AxisTraceEntrypoints {
   public:
       void (*m_traceLine)(const char *data);
       void (*m_traceEntry)(const char *className, const char *methodName, const void* that, int nParms, va_list vargs);
  @@ -118,7 +118,10 @@
   
   #ifdef AXISTRACE_LIBRARY
       extern AxisTraceEntrypoints *g_traceEntrypoints;
  +#elif !defined(AXIS_CLIENTC_LIB)
  +	extern AxisTraceEntrypoints g_traceEntrypoints;
   #endif
  +
   #ifdef AXISTRACE_LIBRARY_MAINENTRYPOINT
       AxisTraceEntrypoints *g_traceEntrypoints = NULL;
   #endif
  @@ -269,28 +272,18 @@
          * Returns the trace entrypoints to pass to a dynamically loaded library.
          */
   #ifdef AXISTRACE_LIBRARY
  -      static void getTraceEntrypoints(AxisTraceEntrypoints& entrypoints) {
  -         entrypoints = *g_traceEntrypoints;
  +      static AxisTraceEntrypoints* getTraceEntrypoints() {
  +          return g_traceEntrypoints;
         }
  -#else
  -      static void getTraceEntrypoints(AxisTraceEntrypoints& entrypoints) {
  -         entrypoints.m_traceLine = traceLineInternal;
  -         entrypoints.m_traceEntry = traceEntryInternal;
  -         entrypoints.m_traceExit = traceExitInternal;
  -         entrypoints.m_traceCatch = traceCatchInternal;
  -         entrypoints.m_traceOn = isTraceOn();
  +#elif !defined(AXIS_CLIENTC_LIB)
  +      static AxisTraceEntrypoints* getTraceEntrypoints() {
  +         return &g_traceEntrypoints;
         }
   #endif
   
   #ifdef AXISTRACE_LIBRARY
  -      static void setTraceEntrypoints(AxisTraceEntrypoints& entrypoints) {
  -          g_traceEntrypoints = new AxisTraceEntrypoints;
  -          *g_traceEntrypoints = entrypoints;
  -      }
  -
  -      static void deleteTraceEntrypoints() {
  -          if (NULL!=g_traceEntrypoints)
  -              delete g_traceEntrypoints;
  +      static void setTraceEntrypoints(AxisTraceEntrypoints* entrypoints) {
  +          g_traceEntrypoints = entrypoints;
         }
   #endif
   
  
  
  
  1.27      +3 -5      ws-axis/c/src/engine/SOAPTransportFactory.cpp
  
  Index: SOAPTransportFactory.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/engine/SOAPTransportFactory.cpp,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- SOAPTransportFactory.cpp	23 Mar 2005 15:44:58 -0000	1.26
  +++ SOAPTransportFactory.cpp	13 May 2005 16:06:58 -0000	1.27
  @@ -73,13 +73,11 @@
           {
   #ifdef ENABLE_AXISTRACE
               // Load function to do lib level inits
  -            void (*initializeLibrary) (AxisTraceEntrypoints&);
  -            initializeLibrary = (void (*)(AxisTraceEntrypoints&))PLATFORM_GETPROCADDR(m_LibHandler, INIT_FUNCTION);
  +            void (*initializeLibrary) (AxisTraceEntrypoints*);
  +            initializeLibrary = (void (*)(AxisTraceEntrypoints*))PLATFORM_GETPROCADDR(m_LibHandler, INIT_FUNCTION);
   
  -            AxisTraceEntrypoints ep;
  -            AxisTrace::getTraceEntrypoints(ep);
               if (initializeLibrary)
  -                 (*initializeLibrary)(ep);
  +                 (*initializeLibrary)(AxisTrace::getTraceEntrypoints());
   #endif
   /*
               // Load functions that does start and stop of event loop
  
  
  
  1.24      +1 -3      ws-axis/c/src/engine/XMLParserFactory.cpp
  
  Index: XMLParserFactory.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/engine/XMLParserFactory.cpp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- XMLParserFactory.cpp	23 Mar 2005 15:44:58 -0000	1.23
  +++ XMLParserFactory.cpp	13 May 2005 16:06:58 -0000	1.24
  @@ -73,10 +73,8 @@
               INIT_OBJECT2 initializeLibrary;
               initializeLibrary = (INIT_OBJECT2) PLATFORM_GETPROCADDR(m_LibHandler, INIT_FUNCTION2);
   
  -            AxisTraceEntrypoints ep;
  -            AxisTrace::getTraceEntrypoints(ep);
               if (initializeLibrary)
  -                 (*initializeLibrary)(ep);
  +                 (*initializeLibrary)(AxisTrace::getTraceEntrypoints());
   #endif
   	  }
   	}
  
  
  
  1.11      +1 -1      ws-axis/c/src/engine/XMLParserFactory.h
  
  Index: XMLParserFactory.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/engine/XMLParserFactory.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XMLParserFactory.h	23 Mar 2005 15:44:58 -0000	1.10
  +++ XMLParserFactory.h	13 May 2005 16:06:59 -0000	1.11
  @@ -39,7 +39,7 @@
   
   typedef int (* CREATE_OBJECT2) (XMLParser** inst);
   typedef int (* DELETE_OBJECT2) (XMLParser* inst);
  -typedef void (* INIT_OBJECT2) (AxisTraceEntrypoints& ep);
  +typedef void (* INIT_OBJECT2) (AxisTraceEntrypoints* ep);
   typedef void (* UNINIT_OBJECT2) ();
   
   AXIS_CPP_NAMESPACE_START
  
  
  
  1.15      +3 -6      ws-axis/c/src/transport/axis3/ChannelFactory.cpp
  
  Index: ChannelFactory.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/transport/axis3/ChannelFactory.cpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ChannelFactory.cpp	23 Mar 2005 09:24:32 -0000	1.14
  +++ ChannelFactory.cpp	13 May 2005 16:06:59 -0000	1.15
  @@ -93,15 +93,12 @@
   
   #ifdef ENABLE_AXISTRACE
   // Load function to do lib level inits
  -			void (*initializeLibrary) (AxisTraceEntrypoints&);
  -			initializeLibrary = (void (*)(AxisTraceEntrypoints&))PLATFORM_GETPROCADDR(sLibHandler, "initializeLibrary");
  -
  -			AxisTraceEntrypoints ep;
  -			AxisTrace::getTraceEntrypoints( ep);
  +			void (*initializeLibrary) (AxisTraceEntrypoints*);
  +			initializeLibrary = (void (*)(AxisTraceEntrypoints*))PLATFORM_GETPROCADDR(sLibHandler, "initializeLibrary");
   
   			if( initializeLibrary)
   			{
  -				(*initializeLibrary) ( ep);
  +				(*initializeLibrary) (AxisTrace::getTraceEntrypoints());
   			}
   #endif
   
  
  
  
  1.13      +1 -4      ws-axis/c/src/transport/axis3/HTTPTransportInstantiator.cpp
  
  Index: HTTPTransportInstantiator.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/transport/axis3/HTTPTransportInstantiator.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- HTTPTransportInstantiator.cpp	23 Mar 2005 15:45:02 -0000	1.12
  +++ HTTPTransportInstantiator.cpp	13 May 2005 16:06:59 -0000	1.13
  @@ -59,7 +59,7 @@
           return AXIS_FAIL;
       }
   
  -    STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints& ep)
  +    STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints* ep)
       {
           // Do init actions
   #ifdef ENABLE_AXISTRACE
  @@ -71,9 +71,6 @@
       STORAGE_CLASS_INFO void uninitializeLibrary (void)
       {
           // Do uninit actions
  -#ifdef ENABLE_AXISTRACE
  -        AxisTrace::deleteTraceEntrypoints();
  -#endif
   
       }
   
  
  
  
  1.14      +1 -4      ws-axis/c/src/transport/axis3/HTTPChannel/HTTPChannelInstantiator.cpp
  
  Index: HTTPChannelInstantiator.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/transport/axis3/HTTPChannel/HTTPChannelInstantiator.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- HTTPChannelInstantiator.cpp	23 Mar 2005 15:45:03 -0000	1.13
  +++ HTTPChannelInstantiator.cpp	13 May 2005 16:06:59 -0000	1.14
  @@ -69,7 +69,7 @@
   
       /*  initializeLibrary() Is a C interface.
        */
  -    STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints& ep)
  +    STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints* ep)
       {
           // Do init actions
   #ifdef ENABLE_AXISTRACE
  @@ -82,9 +82,6 @@
       STORAGE_CLASS_INFO void uninitializeLibrary (void)
       {
           // Do uninit actions
  -#ifdef ENABLE_AXISTRACE
  -        AxisTrace::deleteTraceEntrypoints();
  -#endif
       }
   
       STORAGE_CLASS_INFO const char * WhatAmI()
  
  
  
  1.7       +1 -4      ws-axis/c/src/xml/xerces/ParserLoader.cpp
  
  Index: ParserLoader.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/xml/xerces/ParserLoader.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ParserLoader.cpp	23 Mar 2005 15:45:05 -0000	1.6
  +++ ParserLoader.cpp	13 May 2005 16:06:59 -0000	1.7
  @@ -54,7 +54,7 @@
   	return AXIS_FAIL;
   }
   
  -STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints& ep)
  +STORAGE_CLASS_INFO void initializeLibrary (AxisTraceEntrypoints* ep)
   {
         // Do init actions
   #ifdef ENABLE_AXISTRACE
  @@ -66,9 +66,6 @@
   STORAGE_CLASS_INFO void uninitializeLibrary (void)
   {
         // Do uninit actions
  -#ifdef ENABLE_AXISTRACE
  -      AxisTrace::deleteTraceEntrypoints();
  -#endif
   }
   
   }