You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2007/01/01 05:06:57 UTC

svn commit: r491528 - in /webservices/axis2/trunk/c/axiom/src/om: om_node.c om_output.c

Author: samisa
Date: Sun Dec 31 20:06:55 2006
New Revision: 491528

URL: http://svn.apache.org/viewvc?view=rev&rev=491528
Log:
Dropped swith statements and replaced with if else as that seemed to be more performant

Modified:
    webservices/axis2/trunk/c/axiom/src/om/om_node.c
    webservices/axis2/trunk/c/axiom/src/om/om_output.c

Modified: webservices/axis2/trunk/c/axiom/src/om/om_node.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/src/om/om_node.c?view=diff&rev=491528&r1=491527&r2=491528
==============================================================================
--- webservices/axis2/trunk/c/axiom/src/om/om_node.c (original)
+++ webservices/axis2/trunk/c/axiom/src/om/om_node.c Sun Dec 31 20:06:55 2006
@@ -224,37 +224,32 @@
         }
     }
 
-    switch (node_impl->node_type)
+    if (node_impl->node_type == AXIOM_ELEMENT)
     {
-        case AXIOM_ELEMENT:
-            if (node_impl->data_element)
-                AXIOM_ELEMENT_FREE((axiom_element_t*)(node_impl->data_element), env);
-
-            break;
-
-        case AXIOM_COMMENT:
-            if (node_impl->data_element)
-                AXIOM_COMMENT_FREE((axiom_comment_t*)(node_impl->data_element), env);
-
-            break;
-        case AXIOM_DOCTYPE:
-            /*AXIOM_DOCTYPE_FREE((axiom_doctype_t*)(node_impl->data_element), env);*/
-            break;
-        case AXIOM_PROCESSING_INSTRUCTION:
-            if (node_impl->data_element)
-                AXIOM_PROCESSING_INSTRUCTION_FREE(
-                    (axiom_processing_instruction_t*)(node_impl->data_element), env);
-
-            break;
-        case AXIOM_TEXT:
-            if (node_impl->data_element)
-                AXIOM_TEXT_FREE((axiom_text_t*)(node_impl->data_element), env);
-
-            break;
-
-        default:
-            break;
+        if (node_impl->data_element)
+            AXIOM_ELEMENT_FREE((axiom_element_t*)(node_impl->data_element), env);
+    }
+    else if (node_impl->node_type == AXIOM_COMMENT)
+    {
+        if (node_impl->data_element)
+            AXIOM_COMMENT_FREE((axiom_comment_t*)(node_impl->data_element), env);
+    }
+    else if (node_impl->node_type == AXIOM_DOCTYPE)
+    {
+        /*AXIOM_DOCTYPE_FREE((axiom_doctype_t*)(node_impl->data_element), env);*/
+    }
+    else if (node_impl->node_type == AXIOM_PROCESSING_INSTRUCTION)
+    {
+        if (node_impl->data_element)
+            AXIOM_PROCESSING_INSTRUCTION_FREE(
+                (axiom_processing_instruction_t*)(node_impl->data_element), env);
     }
+    else if (node_impl->node_type == AXIOM_TEXT)
+    {
+        if (node_impl->data_element)
+            AXIOM_TEXT_FREE((axiom_text_t*)(node_impl->data_element), env);
+    }
+    
     if (om_node->ops)
     {
         AXIS2_FREE(env->allocator, om_node->ops);
@@ -480,72 +475,63 @@
     node_impl = AXIS2_INTF_TO_IMPL(om_node);
 
 
-    switch (node_impl->node_type)
+    if (node_impl->node_type == AXIOM_ELEMENT)
+    {
+        if (node_impl->data_element)
+        {
+            status = AXIOM_ELEMENT_SERIALIZE_START_PART(
+                        (axiom_element_t *)(node_impl->data_element),
+                        env,
+                        om_output,
+                        om_node);
+        }
+        if (status != AXIS2_SUCCESS)
+            return status;
+    }
+    else if (node_impl->node_type == AXIOM_TEXT)
+    {
+        if (node_impl->data_element)
+        {
+            status = AXIOM_TEXT_SERIALIZE(
+                        (axiom_text_t*)(node_impl->data_element),
+                        env, om_output);
+        }
+        if (status != AXIS2_SUCCESS)
+            return status;
+    }
+    else if (node_impl->node_type == AXIOM_COMMENT)
+    {
+        if (node_impl->data_element)
+        {
+            status = AXIOM_COMMENT_SERIALIZE(
+                        (axiom_comment_t*)(node_impl->data_element),
+                        env, om_output);
+        }
+        if (status != AXIS2_SUCCESS)
+            return status;
+    }
+    else if (node_impl->node_type == AXIOM_DOCTYPE)
+    {
+        if (node_impl->data_element)
+        {
+            status = AXIOM_DOCTYPE_SERIALIZE(
+                        (axiom_doctype_t*)(node_impl->data_element),
+                        env, om_output);
+        }
+        if (status != AXIS2_SUCCESS)
+            return status;
+    }
+    else if (node_impl->node_type == AXIOM_PROCESSING_INSTRUCTION)
     {
-        case AXIOM_ELEMENT:
-            if (node_impl->data_element)
-            {
-                status = AXIOM_ELEMENT_SERIALIZE_START_PART(
-                            (axiom_element_t *)(node_impl->data_element),
-                            env,
-                            om_output,
-                            om_node);
-            }
-            if (status != AXIS2_SUCCESS)
-                return status;
-
-            break;
-
-        case AXIOM_TEXT:
-            if (node_impl->data_element)
-            {
-                status = AXIOM_TEXT_SERIALIZE(
-                            (axiom_text_t*)(node_impl->data_element),
-                            env, om_output);
-            }
-            if (status != AXIS2_SUCCESS)
-                return status;
-
-            break;
-
-        case AXIOM_COMMENT:
-            if (node_impl->data_element)
-            {
-                status = AXIOM_COMMENT_SERIALIZE(
-                            (axiom_comment_t*)(node_impl->data_element),
-                            env, om_output);
-            }
-            if (status != AXIS2_SUCCESS)
-                return status;
-
-            break;
-
-        case AXIOM_DOCTYPE:
-            if (node_impl->data_element)
-            {
-                status = AXIOM_DOCTYPE_SERIALIZE(
-                            (axiom_doctype_t*)(node_impl->data_element),
-                            env, om_output);
-            }
-            if (status != AXIS2_SUCCESS)
-                return status;
-
-            break;
-
-        case AXIOM_PROCESSING_INSTRUCTION:
-            if (node_impl->data_element)
-            {
-                status = AXIOM_PROCESSING_INSTRUCTION_SERIALIZE(
-                            (axiom_processing_instruction_t*)(node_impl->data_element),
-                            env, om_output);
-            }
-
-            if (status != AXIS2_SUCCESS)
-                return status;
-            break;
+        if (node_impl->data_element)
+        {
+            status = AXIOM_PROCESSING_INSTRUCTION_SERIALIZE(
+                        (axiom_processing_instruction_t*)(node_impl->data_element),
+                        env, om_output);
+        }
 
-        default:
-            break;
+        if (status != AXIS2_SUCCESS)
+            return status;
     }
 
 
@@ -557,22 +543,16 @@
         temp_node = AXIOM_NODE_GET_NEXT_SIBLING(temp_node, env);
     }
 
-    switch (node_impl->node_type)
+    if (node_impl->node_type == AXIOM_ELEMENT)
     {
-        case AXIOM_ELEMENT:
-            if (node_impl->data_element)
-            {
-                status = AXIOM_ELEMENT_SERIALIZE_END_PART(
-                            (axiom_element_t *)(node_impl->data_element),
-                            env, om_output);
-            }
-            if (status != AXIS2_SUCCESS)
-                return status;
-
-            break;
-
-        default:
-            break;
+        if (node_impl->data_element)
+        {
+            status = AXIOM_ELEMENT_SERIALIZE_END_PART(
+                        (axiom_element_t *)(node_impl->data_element),
+                        env, om_output);
+        }
+        if (status != AXIS2_SUCCESS)
+            return status;
     }
 
     return status;

Modified: webservices/axis2/trunk/c/axiom/src/om/om_output.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/src/om/om_output.c?view=diff&rev=491528&r1=491527&r2=491528
==============================================================================
--- webservices/axis2/trunk/c/axiom/src/om/om_output.c (original)
+++ webservices/axis2/trunk/c/axiom/src/om/om_output.c Sun Dec 31 20:06:55 2006
@@ -659,118 +659,111 @@
     va_end(ap);
 
 
-    switch (type)
+    if (type == AXIOM_ELEMENT)
     {
-        case AXIOM_ELEMENT:
-
-
-            switch (no_of_args)
-            {
-                case 0:
-                    status =
-                        AXIOM_XML_WRITER_WRITE_END_ELEMENT(om_output_impl->xml_writer,
-                                env);
-                    break;
-                case 1:
-                    status =
-                        AXIOM_XML_WRITER_WRITE_START_ELEMENT(om_output_impl->xml_writer,
-                                env, args_list[0]);
-                    break;
-                case 2:
-                    status = AXIOM_XML_WRITER_WRITE_START_ELEMENT_WITH_NAMESPACE(
-                                om_output_impl->xml_writer,
-                                env,
-                                args_list[0],
-                                args_list[1]);
-                    break;
-                case 3:
-                    status =
-                        AXIOM_XML_WRITER_WRITE_START_ELEMENT_WITH_NAMESPACE_PREFIX(
-                            om_output_impl->xml_writer,
-                            env,
-                            args_list[0],
-                            args_list[1],
-                            args_list[2]);
-                    break;
-            }
-            break;
-
-        case AXIOM_ATTRIBUTE:
-            switch (no_of_args)
-            {
-                case 2:
-                    status =
-                        AXIOM_XML_WRITER_WRITE_ATTRIBUTE(om_output_impl->xml_writer,
-                                env,
-                                args_list[0],
-                                args_list[1]);
-                    break;
-                case 3:
-                    status = AXIOM_XML_WRITER_WRITE_ATTRIBUTE_WITH_NAMESPACE(
-                                om_output_impl->xml_writer, env,
-                                args_list[0],
-                                args_list[1],
-                                args_list[2]);
-                    break;
-                case 4:
-                    status =
-                        AXIOM_XML_WRITER_WRITE_ATTRIBUTE_WITH_NAMESPACE_PREFIX(
-                            om_output_impl->xml_writer, env,
-                            args_list[0],
-                            args_list[1],
-                            args_list[2],
-                            args_list[3]);
-
-                    break;
-
-            }
-            break;
-
-        case AXIOM_NAMESPACE:
-            status = AXIOM_XML_WRITER_WRITE_NAMESPACE(om_output_impl->xml_writer,
+        if (no_of_args == 0)
+        {
+            status =
+                AXIOM_XML_WRITER_WRITE_END_ELEMENT(om_output_impl->xml_writer,
+                        env);
+        }
+        else if (no_of_args == 1)
+        {
+            status =
+                AXIOM_XML_WRITER_WRITE_START_ELEMENT(om_output_impl->xml_writer,
+                        env, args_list[0]);
+        }
+        else if (no_of_args == 2)
+        {
+            status = AXIOM_XML_WRITER_WRITE_START_ELEMENT_WITH_NAMESPACE(
+                        om_output_impl->xml_writer,
+                        env,
+                        args_list[0],
+                        args_list[1]);
+        }
+        else if (no_of_args == 3)
+        {
+            status =
+                AXIOM_XML_WRITER_WRITE_START_ELEMENT_WITH_NAMESPACE_PREFIX(
+                    om_output_impl->xml_writer,
                     env,
                     args_list[0],
-                    args_list[1]);
-            break;
-        case AXIOM_TEXT:
-            status = AXIOM_XML_WRITER_WRITE_CHARACTERS(om_output_impl->xml_writer,
-                    env,
-                    args_list[0]);
-            break;
-        case AXIOM_COMMENT:
-            status = AXIOM_XML_WRITER_WRITE_COMMENT(om_output_impl->xml_writer,
-                    env,
-                    args_list[0]);
-            break;
-        case AXIOM_PROCESSING_INSTRUCTION:
-            switch (no_of_args)
-            {
-                case 1:
-
-                    status =
-                        AXIOM_XML_WRITER_WRITE_PROCESSING_INSTRUCTION(
-                            om_output_impl->xml_writer,
-                            env, args_list[0]);
-                    break;
-                case 2:
-
-                    status = AXIOM_XML_WRITER_WRITE_PROCESSING_INSTRUCTION_DATA(
-                                om_output_impl->xml_writer,
-                                env,
-                                args_list[0],
-                                args_list[1]);
-                    break;
-            }
-            break;
-        case AXIOM_DOCTYPE:
-            status = AXIOM_XML_WRITER_WRITE_DTD(om_output_impl->xml_writer,
-                    env,
-                    args_list[0]);
-            break;
-
-        default:
-            break;
-    };
+                    args_list[1],
+                    args_list[2]);
+        }
+    }
+    else if (type == AXIOM_ATTRIBUTE)
+    {
+        if (no_of_args == 2)
+        {
+            status =
+                AXIOM_XML_WRITER_WRITE_ATTRIBUTE(om_output_impl->xml_writer,
+                        env,
+                        args_list[0],
+                        args_list[1]);
+        }
+        else if (no_of_args == 3)
+        {
+            status = AXIOM_XML_WRITER_WRITE_ATTRIBUTE_WITH_NAMESPACE(
+                        om_output_impl->xml_writer, env,
+                        args_list[0],
+                        args_list[1],
+                        args_list[2]);
+        }
+        else if (no_of_args == 4)
+        {
+            status =
+                AXIOM_XML_WRITER_WRITE_ATTRIBUTE_WITH_NAMESPACE_PREFIX(
+                    om_output_impl->xml_writer, env,
+                    args_list[0],
+                    args_list[1],
+                    args_list[2],
+                    args_list[3]);
+        }
+    }
+    else if (type == AXIOM_NAMESPACE)
+    {
+        status = AXIOM_XML_WRITER_WRITE_NAMESPACE(om_output_impl->xml_writer,
+                env,
+                args_list[0],
+                args_list[1]);
+    }
+    else if (type == AXIOM_TEXT)
+    {
+        status = AXIOM_XML_WRITER_WRITE_CHARACTERS(om_output_impl->xml_writer,
+                env,
+                args_list[0]);
+    }
+    else if (type == AXIOM_COMMENT)
+    {
+        status = AXIOM_XML_WRITER_WRITE_COMMENT(om_output_impl->xml_writer,
+                env,
+                args_list[0]);
+    }
+    else if (type == AXIOM_PROCESSING_INSTRUCTION)
+    {
+        if (no_of_args == 1)
+        {
+            status =
+                AXIOM_XML_WRITER_WRITE_PROCESSING_INSTRUCTION(
+                    om_output_impl->xml_writer,
+                    env, args_list[0]);
+        }
+        else if (no_of_args == 2)
+        {
+            status = AXIOM_XML_WRITER_WRITE_PROCESSING_INSTRUCTION_DATA(
+                        om_output_impl->xml_writer,
+                        env,
+                        args_list[0],
+                        args_list[1]);
+        }
+    }
+    else if (type == AXIOM_DOCTYPE)
+    {
+        status = AXIOM_XML_WRITER_WRITE_DTD(om_output_impl->xml_writer,
+                env,
+                args_list[0]);
+    }
 
     if (status == AXIS2_SUCCESS)
     {



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org