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/04/01 04:10:17 UTC

svn commit: r524508 - in /webservices/axis2/trunk/c/axiom: include/axiom_xml_reader.h src/parser/libxml2/libxml2_reader_wrapper.c

Author: samisa
Date: Sat Mar 31 19:10:17 2007
New Revision: 524508

URL: http://svn.apache.org/viewvc?view=rev&rev=524508
Log:
Made ops struct static

Modified:
    webservices/axis2/trunk/c/axiom/include/axiom_xml_reader.h
    webservices/axis2/trunk/c/axiom/src/parser/libxml2/libxml2_reader_wrapper.c

Modified: webservices/axis2/trunk/c/axiom/include/axiom_xml_reader.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_xml_reader.h?view=diff&rev=524508&r1=524507&r2=524508
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_xml_reader.h (original)
+++ webservices/axis2/trunk/c/axiom/include/axiom_xml_reader.h Sat Mar 31 19:10:17 2007
@@ -307,7 +307,7 @@
      */
     struct axiom_xml_reader
     {
-        axiom_xml_reader_ops_t *ops;
+        const axiom_xml_reader_ops_t *ops;
     };
 
     /**

Modified: webservices/axis2/trunk/c/axiom/src/parser/libxml2/libxml2_reader_wrapper.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/src/parser/libxml2/libxml2_reader_wrapper.c?view=diff&rev=524508&r1=524507&r2=524508
==============================================================================
--- webservices/axis2/trunk/c/axiom/src/parser/libxml2/libxml2_reader_wrapper.c (original)
+++ webservices/axis2/trunk/c/axiom/src/parser/libxml2/libxml2_reader_wrapper.c Sat Mar 31 19:10:17 2007
@@ -23,11 +23,8 @@
 #include <string.h>
 #include <axutil_string.h>
 
-/*************************** Function Prototypes ******************************/
-
 #define AXIS2_ATTR_NS_MAX   20
 
-
 int AXIS2_CALL
 axis2_libxml2_reader_wrapper_next(axiom_xml_reader_t *parser,
     const axutil_env_t *env);
@@ -134,11 +131,6 @@
 static int
 axis2_libxml2_reader_wrapper_close_input_callback(void *ctx);
 
-static void
-axis2_libxml2_reader_wrapper_init_ops(axiom_xml_reader_t *reader);
-
-/************* End function parameters , axis2_libxml2_reader_wrapper_impl_t struct ***/
-
 typedef struct axis2_libxml2_reader_wrapper_impl_t
 {
     axiom_xml_reader_t parser;
@@ -155,8 +147,6 @@
 
     int namespace_map[AXIS2_ATTR_NS_MAX];
     int attribute_map[AXIS2_ATTR_NS_MAX];
-    /******************************************/
-    /* read callback function*/
 
     AXIS2_READ_INPUT_CALLBACK read_input_callback;
 
@@ -165,13 +155,31 @@
 }
 axis2_libxml2_reader_wrapper_impl_t;
 
-/****************** End struct , Macro *****************************************/
-
 #define AXIS2_INTF_TO_IMPL(p) ((axis2_libxml2_reader_wrapper_impl_t*)p)
 #define AXIS2_IMPL_TO_INTF(p) &(p->parser)
 
-
-/********************* End Macro  , event_map init function **********************/
+static const axiom_xml_reader_ops_t axiom_xml_reader_ops_var = {
+    axis2_libxml2_reader_wrapper_next,
+    axis2_libxml2_reader_wrapper_free,
+    axis2_libxml2_reader_wrapper_get_attribute_count,
+    axis2_libxml2_reader_wrapper_get_attribute_name_by_number,
+    axis2_libxml2_reader_wrapper_get_attribute_prefix_by_number,
+    axis2_libxml2_reader_wrapper_get_attribute_value_by_number,
+    axis2_libxml2_reader_wrapper_get_attribute_namespace_by_number,
+    axis2_libxml2_reader_wrapper_get_value,
+    axis2_libxml2_reader_wrapper_get_namespace_count,
+    axis2_libxml2_reader_wrapper_get_namespace_uri_by_number,
+    axis2_libxml2_reader_wrapper_get_namespace_prefix_by_number,
+    axis2_libxml2_reader_wrapper_get_prefix,
+    axis2_libxml2_reader_wrapper_get_name,
+    axis2_libxml2_reader_wrapper_get_pi_target,
+    axis2_libxml2_reader_wrapper_get_pi_data,
+    axis2_libxml2_reader_wrapper_get_dtd,
+    axis2_libxml2_reader_wrapper_xml_free,
+    axis2_libxml2_reader_wrapper_get_char_set_encoding,
+    axis2_libxml2_reader_wrapper_get_namespace_uri,
+    axis2_libxml2_reader_wrapper_get_namespace_uri_by_prefix
+};
 
 static axis2_status_t
 axis2_libxml2_reader_wrapper_init_map(axis2_libxml2_reader_wrapper_impl_t *parser)
@@ -224,53 +232,6 @@
     return AXIS2_FAILURE;
 }
 
-static void
-axis2_libxml2_reader_wrapper_init_ops(axiom_xml_reader_t *parser)
-{
-    parser->ops->free =
-        axis2_libxml2_reader_wrapper_free;
-    parser->ops->next =
-        axis2_libxml2_reader_wrapper_next;
-    parser->ops->xml_free =
-        axis2_libxml2_reader_wrapper_xml_free;
-    parser->ops->get_attribute_count =
-        axis2_libxml2_reader_wrapper_get_attribute_count;
-    parser->ops->get_attribute_name_by_number =
-        axis2_libxml2_reader_wrapper_get_attribute_name_by_number;
-    parser->ops->get_attribute_value_by_number =
-        axis2_libxml2_reader_wrapper_get_attribute_value_by_number;
-    parser->ops->get_attribute_namespace_by_number =
-        axis2_libxml2_reader_wrapper_get_attribute_namespace_by_number;
-    parser->ops->get_attribute_prefix_by_number =
-        axis2_libxml2_reader_wrapper_get_attribute_prefix_by_number;
-    parser->ops->get_value =
-        axis2_libxml2_reader_wrapper_get_value;
-    parser->ops->get_prefix =
-        axis2_libxml2_reader_wrapper_get_prefix;
-    parser->ops->get_name =
-        axis2_libxml2_reader_wrapper_get_name;
-    parser->ops->get_namespace_count =
-        axis2_libxml2_reader_wrapper_get_namespace_count;
-    parser->ops->get_namespace_prefix_by_number =
-        axis2_libxml2_reader_wrapper_get_namespace_prefix_by_number;
-    parser->ops->get_namespace_uri_by_number =
-        axis2_libxml2_reader_wrapper_get_namespace_uri_by_number;
-    parser->ops->get_pi_target =
-        axis2_libxml2_reader_wrapper_get_pi_target;
-    parser->ops->get_pi_data =
-        axis2_libxml2_reader_wrapper_get_pi_data;
-    parser->ops->get_dtd =
-        axis2_libxml2_reader_wrapper_get_dtd;
-    parser->ops->get_char_set_encoding =
-        axis2_libxml2_reader_wrapper_get_char_set_encoding;
-    parser->ops->get_namespace_uri =
-        axis2_libxml2_reader_wrapper_get_namespace_uri;
-    parser->ops->get_namespace_uri_by_prefix =
-        axis2_libxml2_reader_wrapper_get_namespace_uri_by_prefix;
-}
-
-
-/*******************************************************************************/
 AXIS2_EXTERN  axis2_status_t  AXIS2_CALL
 axiom_xml_reader_init()
 {
@@ -285,7 +246,6 @@
     return AXIS2_SUCCESS;
 }
 
-/*******************************************************************************/
 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
 axiom_xml_reader_create_for_file(const axutil_env_t *env,
     char *filename,
@@ -320,24 +280,10 @@
 
     axis2_libxml2_reader_wrapper_init_map(wrapper_impl);
 
-    wrapper_impl->parser.ops = NULL;
-    wrapper_impl->parser.ops = (axiom_xml_reader_ops_t*)AXIS2_MALLOC(env->allocator,
-        sizeof(axiom_xml_reader_ops_t));
-
-    if (!(wrapper_impl->parser.ops))
-    {
-        xmlFreeTextReader(wrapper_impl->reader);
-        AXIS2_FREE(env->allocator, wrapper_impl);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    /* ops */
-    axis2_libxml2_reader_wrapper_init_ops(&(wrapper_impl->parser));
+    wrapper_impl->parser.ops = &axiom_xml_reader_ops_var;
     return &(wrapper_impl->parser);
 }
 
-/************** create function for io callback function **********************/
-
 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
 axiom_xml_reader_create_for_io(const axutil_env_t *env,
     AXIS2_READ_INPUT_CALLBACK read_input_callback,
@@ -393,23 +339,10 @@
 
     axis2_libxml2_reader_wrapper_init_map(wrapper_impl);
 
-    wrapper_impl->parser.ops = NULL;
-    wrapper_impl->parser.ops = (axiom_xml_reader_ops_t*)AXIS2_MALLOC(env->allocator,
-        sizeof(axiom_xml_reader_ops_t));
-
-    if (!(wrapper_impl->parser.ops))
-    {
-        xmlFreeTextReader(wrapper_impl->reader);
-        AXIS2_FREE(env->allocator, wrapper_impl);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-
-    axis2_libxml2_reader_wrapper_init_ops(&(wrapper_impl->parser));
+    wrapper_impl->parser.ops = &axiom_xml_reader_ops_var;
     return &(wrapper_impl->parser);
 }
 
-/***************** create function for character buffer or xml doc ************************/
 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
 axiom_xml_reader_create_for_memory(const axutil_env_t *env,
     void *container,
@@ -468,19 +401,7 @@
 
     axis2_libxml2_reader_wrapper_init_map(wrapper_impl);
 
-    wrapper_impl->parser.ops = NULL;
-    wrapper_impl->parser.ops = (axiom_xml_reader_ops_t*)AXIS2_MALLOC(env->allocator,
-        sizeof(axiom_xml_reader_ops_t));
-
-    if (!(wrapper_impl->parser.ops))
-    {
-        xmlFreeTextReader(wrapper_impl->reader);
-        AXIS2_FREE(env->allocator, wrapper_impl);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-
-    axis2_libxml2_reader_wrapper_init_ops(&(wrapper_impl->parser));
+    wrapper_impl->parser.ops = &axiom_xml_reader_ops_var;
     return &(wrapper_impl->parser);
 }
 



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