Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 16521 invoked from network); 10 Feb 2006 16:15:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 10 Feb 2006 16:15:16 -0000 Received: (qmail 82341 invoked by uid 500); 10 Feb 2006 16:15:11 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 82274 invoked by uid 500); 10 Feb 2006 16:15:10 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 82254 invoked by uid 99); 10 Feb 2006 16:15:10 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Feb 2006 08:15:10 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 10 Feb 2006 08:15:09 -0800 Received: (qmail 16126 invoked by uid 65534); 10 Feb 2006 16:14:48 -0000 Message-ID: <20060210161448.16123.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r376753 - /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java Date: Fri, 10 Feb 2006 16:14:48 -0000 To: axis-cvs@ws.apache.org From: dicka@apache.org X-Mailer: svnmailer-1.0.6 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: dicka Date: Fri Feb 10 08:14:47 2006 New Revision: 376753 URL: http://svn.apache.org/viewcvs?rev=376753&view=rev Log: AXISCPP-149 Correct some memory issues in generated service wrapper for rpc/encoded. Included some formatting tidy-up. Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java?rev=376753&r1=376752&r2=376753&view=diff ============================================================================== --- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java (original) +++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java Fri Feb 10 08:14:47 2006 @@ -288,17 +288,26 @@ writer.write("\tint nStatus;\n"); writer.write("\tIWrapperSoapSerializer* pIWSSZ = NULL;\n"); writer.write("\tmc->getSoapSerializer(&pIWSSZ);\n"); - writer.write("\tif (!pIWSSZ) return AXIS_FAIL;\n"); + writer.write("\tif (!pIWSSZ)\n"); + writer.write("\t{\n"); + writer.write("\t\treturn AXIS_FAIL;\n"); + writer.write("\t}\n"); writer.write("\tIWrapperSoapDeSerializer* pIWSDZ = NULL;\n"); writer.write("\tmc->getSoapDeSerializer(&pIWSDZ);\n"); - writer.write("\tif (!pIWSDZ) return AXIS_FAIL;\n"); + writer.write("\tif (!pIWSDZ)\n"); + writer.write("\t{\n"); + writer.write("\t\treturn AXIS_FAIL;\n"); + writer.write("\t}\n"); writer.write("\t/* check whether we have got correct message */\n"); writer.write( "\tif (AXIS_SUCCESS != pIWSDZ->checkMessageBody(\"" + minfo.getMethodname() + "\", \"" + wscontext.getWrapInfo().getTargetNameSpaceOfWSDL() - + "\")) return AXIS_FAIL;\n"); + + "\"))\n"); + writer.write("\t{\n"); + writer.write("\t\treturn AXIS_FAIL;\n"); + writer.write("\t}\n"); writer.write( "\tpIWSSZ->createSoapMethod(\"" //Chinthana:Fixed for AXISCPP-378 @@ -332,48 +341,83 @@ { if (CUtils.isPointerType(param.getLangName())) { - - writer.write("\t" - + paraTypeName - + " v" - + i - + " = pIWSDZ->" - + CUtils.getParameterGetValueMethodName(paraTypeName, false) - + "(\"" - + parameterName + "\",0);\n"); - } + writer.write("\n\t" + paraTypeName + " v" + i + " = NULL;\n"); + writer.write("\t" + + paraTypeName + + " value" + + i + + " = pIWSDZ->" + + CUtils.getParameterGetValueMethodName(paraTypeName, false) + + "(\"" + + parameterName + "\",0);\n"); + writer.write("\tif (value" + i + ")\n"); + writer.write("\t{\n"); + writer.write("\t\tv" + i + " = new char[ strlen( value" + i + " ) + 1 ];\n"); + writer.write("\t\tstrcpy( v" + i + ", value" + i + " );\n"); + writer.write("\t\tAxis::AxisDelete( (void *) value" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + ");\n"); + writer.write("\t}\n"); + } else { + writer.write("\n\t" + paraTypeName + " * v" + i + " = NULL;\n"); writer.write("\t" + paraTypeName - + "* v" + + "* pValue" + i + " = pIWSDZ->" + CUtils.getParameterGetValueMethodName(paraTypeName, false) + "(\"" + parameterName + "\",0);\n"); + writer.write("\tif (pValue" + i + ")\n"); + writer.write("\t{\n"); + writer.write("\t\tv" + i + " = new " + paraTypeName + "();"); + writer.write("\t\t*v" + i + " = *pValue" + i + ";\n"); + writer.write("\t\tAxis::AxisDelete( (void *) pValue" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + ");\n"); + writer.write("\t}\n"); } } else { if (CUtils.isPointerType(param.getLangName())) + { + writer.write("\n\t" + paraTypeName + " v" + i + " = NULL;\n"); writer.write("\t" + paraTypeName - + " v" + + " value" + i + " = pIWSDZ->" + CUtils.getParameterGetValueMethodName(paraTypeName, false) + "(\"" + parameterName + "\",0);\n"); + writer.write("\tif (value" + i + ")\n"); + writer.write("\t{\n"); + writer.write("\t\tv" + i + " = new char[ strlen( value" + i + " ) + 1 ];\n"); + writer.write("\t\tstrcpy( v" + i + ", value" + i + " );\n"); + writer.write("\t\tAxis::AxisDelete( (void *) value" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + ");\n"); + writer.write("\t}\n"); + } else + { + writer.write("\n\t" + paraTypeName + " v" + i); + if (!"xsd__base64Binary".equals(paraTypeName) && !"xsd__hexBinary".equals(paraTypeName) ) + { + writer.write(" = " + CUtils.getInitValue(paraTypeName)); + } + writer.write(";\n"); writer.write("\t" + paraTypeName - + " v" + + " * pValue" + i - + " = *(pIWSDZ->" + + " = pIWSDZ->" + CUtils.getParameterGetValueMethodName(paraTypeName, false) + "(\"" - + parameterName + "\",0));\n"); + + parameterName + "\",0);\n"); + writer.write("\tif (pValue" + i + ")\n"); + writer.write("\t{\n"); + writer.write("\t\tv" + i + " = *pValue" + i + ";\n"); + writer.write("\t\tAxis::AxisDelete( (void *) pValue" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + " );\n"); + writer.write("\t}\n"); + } } } else @@ -389,7 +433,7 @@ { containedType = CUtils.getclass4qname(qname); - writer.write("\t" + containedType + "_Array * v" + i +" = new " + containedType + "_Array();\n"); + writer.write("\n\t" + containedType + "_Array * v" + i +" = new " + containedType + "_Array();\n"); writer.write( "\t" + "Axis_Array * RetArray" @@ -427,7 +471,7 @@ { //for complex types writer.write( - "\t" + "\n\t" + paraTypeName + " *v" + i @@ -446,8 +490,10 @@ + ");\n"); } } - writer.write( - "\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus())) return nStatus;\n"); + writer.write("\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus()))\n"); + writer.write("\t{\n"); + writer.write("\t\treturn nStatus;\n"); + writer.write("\t}\n"); // Multiples parameters so fill the methods prototype if (isAllTreatedAsOutParams) { @@ -712,8 +758,10 @@ writeExceptions(faultType, faultInfoName, paramName, langName); } } - writer.write("\tcatch(...){\n"); //nithya - writer.write("\t}\n"); //nithya + writer.write("\tcatch(...)\n"); + writer.write("\t{\n"); + writer.write("\t\treturn AXIS_FAIL;\n"); + writer.write("\t}\n"); //write end of method writer.write("}\n"); } @@ -755,6 +803,7 @@ + ");\n"); writer.write("\t\tthrow AxisServiceException(AXISC_SERVICE_THROWN_EXCEPTION);\n"); writer.write("\t\t}\n"); + writer.write("\t\treturn AXIS_FAIL;\n"); writer.write("\t}\n"); writer.write("\n"); }