You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-commits@axis.apache.org by na...@apache.org on 2011/12/11 02:53:03 UTC

svn commit: r1212959 - in /axis/axis1/c/trunk/src/soap: SoapDeSerializer.cpp SoapDeSerializer.h

Author: nadiramra
Date: Sun Dec 11 01:53:03 2011
New Revision: 1212959

URL: http://svn.apache.org/viewvc?rev=1212959&view=rev
Log:
AXISCPP-227 complex extension support step 1.

Modified:
    axis/axis1/c/trunk/src/soap/SoapDeSerializer.cpp
    axis/axis1/c/trunk/src/soap/SoapDeSerializer.h

Modified: axis/axis1/c/trunk/src/soap/SoapDeSerializer.cpp
URL: http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/soap/SoapDeSerializer.cpp?rev=1212959&r1=1212958&r2=1212959&view=diff
==============================================================================
--- axis/axis1/c/trunk/src/soap/SoapDeSerializer.cpp (original)
+++ axis/axis1/c/trunk/src/soap/SoapDeSerializer.cpp Sun Dec 11 01:53:03 2011
@@ -74,6 +74,8 @@ SoapDeSerializer ()
     m_nStatus = AXIS_SUCCESS;
     m_nSoapVersion = VERSION_LAST;
     
+    m_doNotSkip = false;
+
     logExit()
 }
 
@@ -1024,7 +1026,9 @@ getCmplxObject (void *pDZFunct, void *pC
     if (pObject && pDZFunct)
     {
         try 
-        {        
+        {
+            m_doNotSkip = false;
+
             logDebugArg1("Calling object deserializer function for %s", pName)
             
             m_nStatus =    ((AXIS_DESERIALIZE_FUNCT) pDZFunct) (pObject, this);
@@ -1033,7 +1037,10 @@ getCmplxObject (void *pDZFunct, void *pC
 
         
             if (AXIS_SUCCESS == m_nStatus)
-                skipNode();
+            {
+                if (!m_doNotSkip)
+                  skipNode();
+            }
             else
             {
                 logDebugArg2("Calling object delete function for %s for object %p", pName, pObject)
@@ -2460,6 +2467,11 @@ getChardataAs (void **pValue, XSDTYPE ty
             *pValue = pSimpleType->getValue();
             delete pSimpleType;
         }
+        else if (END_ELEMENT == m_pNode->m_type)
+        {
+            m_doNotSkip = true;
+            m_pNode = NULL;
+        }
     }
     
     logExit()

Modified: axis/axis1/c/trunk/src/soap/SoapDeSerializer.h
URL: http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/soap/SoapDeSerializer.h?rev=1212959&r1=1212958&r2=1212959&view=diff
==============================================================================
--- axis/axis1/c/trunk/src/soap/SoapDeSerializer.h (original)
+++ axis/axis1/c/trunk/src/soap/SoapDeSerializer.h Sun Dec 11 01:53:03 2011
@@ -63,6 +63,8 @@ private:
     
     string m_strMethodNameToInvoke;
 
+    bool m_doNotSkip;
+
 private:
     int AXISCALL getArraySize();
 public: