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 sh...@apache.org on 2009/09/10 07:57:41 UTC
svn commit: r813238 -
/webservices/axis2/trunk/c/guththila/src/guththila_xml_writer.c
Author: shankar
Date: Thu Sep 10 05:57:41 2009
New Revision: 813238
URL: http://svn.apache.org/viewvc?rev=813238&view=rev
Log:
fixing issue AXIS2C-1375
Modified:
webservices/axis2/trunk/c/guththila/src/guththila_xml_writer.c
Modified: webservices/axis2/trunk/c/guththila/src/guththila_xml_writer.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/guththila/src/guththila_xml_writer.c?rev=813238&r1=813237&r2=813238&view=diff
==============================================================================
--- webservices/axis2/trunk/c/guththila/src/guththila_xml_writer.c (original)
+++ webservices/axis2/trunk/c/guththila/src/guththila_xml_writer.c Thu Sep 10 05:57:41 2009
@@ -919,6 +919,7 @@
guththila_xml_writer_namesp_t * namesp = NULL;
guththila_xml_writer_element_t * elem = NULL;
int pref_start = 0, uri_start = 0;
+ guththila_char_t *pref_start_p = NULL, *uri_start_p = NULL;
guththila_xml_writer_namesp_t * writer_namesp = NULL;
guththila_token_t ** tok_name = NULL, **tok_uri = NULL;
size_t pref_len = strlen(prefix), uri_len = strlen(uri);
@@ -950,9 +951,11 @@
guththila_write(wr, " xmlns:", 7u, env);
pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
guththila_write(wr, "=\"", 2u, env);
uri_start = wr->next;
guththila_write_xtoken(wr, uri, uri_len, env);
+ uri_start_p = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
guththila_write(wr, "\"", 1u, env);
elem = guththila_stack_peek(&wr->element, env);
if(elem && elem->name_sp_stack_no == -1)
@@ -981,15 +984,11 @@
sizeof(guththila_token_t
*) *
GUTHTHILA_XML_WRITER_NAMESP_DEF_SIZE);
- namesp->name[0] =
- guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->name[0]->start =
- GUTHTHILA_BUF_POS(wr->buffer, pref_start);
+ namesp->name[0] = guththila_tok_list_get_token(&wr->tok_list, env);
+ namesp->name[0]->start = pref_start_p ;
namesp->name[0]->size = pref_len;
- namesp->uri[0] =
- guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->uri[0]->start =
- GUTHTHILA_BUF_POS(wr->buffer, uri_start);
+ namesp->uri[0] = guththila_tok_list_get_token(&wr->tok_list, env);
+ namesp->uri[0]->start = uri_start_p ;
namesp->uri[0]->size = uri_len;
#endif
@@ -1014,15 +1013,11 @@
namesp->uri[namesp->no - 1] = strdup(uri);
#else
- namesp->name[++(namesp->no) - 1] =
- guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->uri[namesp->no - 1] =
- guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->name[namesp->no - 1]->start =
- GUTHTHILA_BUF_POS(wr->buffer, pref_start);
+ namesp->name[++(namesp->no) - 1] = guththila_tok_list_get_token(&wr->tok_list, env);
+ namesp->uri[namesp->no - 1] = guththila_tok_list_get_token(&wr->tok_list, env);
+ namesp->name[namesp->no - 1]->start = pref_start_p;
namesp->name[namesp->no - 1]->size = pref_len;
- namesp->uri[namesp->no - 1]->start =
- GUTHTHILA_BUF_POS(wr->buffer, uri_start);
+ namesp->uri[namesp->no - 1]->start = uri_start_p;
namesp->uri[namesp->no - 1]->size = uri_len;
#endif
@@ -1062,16 +1057,12 @@
namesp->uri = tok_uri;
namesp->size = GUTHTHILA_XML_WRITER_NAMESP_DEF_SIZE + namesp->size;
- namesp->name[namesp->no] =
- guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->uri[namesp->no] =
- guththila_tok_list_get_token(&wr->tok_list, env);
+ namesp->name[namesp->no] = guththila_tok_list_get_token(&wr->tok_list, env);
+ namesp->uri[namesp->no] = guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->name[namesp->no ]->start =
- GUTHTHILA_BUF_POS(wr->buffer, pref_start);
+ namesp->name[namesp->no ]->start = pref_start_p;
namesp->name[namesp->no ]->size = pref_len;
- namesp->uri[namesp->no ]->start =
- GUTHTHILA_BUF_POS(wr->buffer, uri_start);
+ namesp->uri[namesp->no ]->start = uri_start_p;
namesp->uri[namesp->no ]->size = uri_len;
namesp->no ++;
#endif
@@ -1225,6 +1216,8 @@
guththila_xml_writer_namesp_t * namesp = NULL;
guththila_xml_writer_element_t * elem = NULL;
int uri_start = 0, pref_start = 0, elem_start = 0, elem_pref_start = 0;
+ guththila_char_t *uri_start_p = NULL, *pref_start_p = NULL;
+ guththila_char_t *elem_start_p = NULL, *elem_pref_start_p = NULL ;
size_t uri_len = 0;
size_t pref_len = 0;
size_t elem_len = 0;
@@ -1266,18 +1259,22 @@
guththila_write(wr, "><", 2u, env);
elem_pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ elem_pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
if(!nmsp_found)
{
guththila_write(wr, " ", 1u, env);
guththila_write(wr, "xmlns:", 6u, env);
pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
guththila_write(wr, "=\"", 2u, env);
uri_start = wr->next;
guththila_write_xtoken(wr, namespace_uri, uri_len, env);
+ uri_start_p = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
guththila_write(wr, "\"", 1u, env);
}
}
@@ -1287,18 +1284,22 @@
guththila_write(wr, "/><", 2u, env);
elem_pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ elem_pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
if(!nmsp_found)
{
guththila_write(wr, " ", 1u, env);
guththila_write(wr, "xmlns:", 6u, env);
pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
guththila_write(wr, "=\"", 2u, env);
uri_start = wr->next;
guththila_write_xtoken(wr, namespace_uri, uri_len, env);
+ uri_start_p = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
guththila_write(wr, "\"", 1u, env);
}
wr->status = START;
@@ -1308,18 +1309,22 @@
guththila_write(wr, "<", 1u, env);
elem_pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ elem_pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
if(!nmsp_found)
{
guththila_write(wr, " ", 1u, env);
guththila_write(wr, "xmlns:", 6u, env);
pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
guththila_write(wr, "=\"", 2u, env);
uri_start = wr->next;
guththila_write_xtoken(wr, namespace_uri, uri_len, env);
+ uri_start_p = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
guththila_write(wr, "\"", 1u, env);
}
wr->status = START;
@@ -1354,10 +1359,10 @@
*
GUTHTHILA_XML_WRITER_NAMESP_DEF_SIZE);
namesp->name[0] = guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->name[0]->start = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
+ namesp->name[0]->start = pref_start_p;
namesp->name[0]->size = pref_len;
namesp->uri[0] = guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->uri[0]->start = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
+ namesp->uri[0]->start = uri_start_p;
namesp->uri[0]->size = uri_len;
#endif
namesp->no = 1;
@@ -1372,9 +1377,9 @@
#else
elem->name = guththila_tok_list_get_token(&wr->tok_list, env);
elem->prefix = guththila_tok_list_get_token(&wr->tok_list, env);
- elem->name->start = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
+ elem->name->start = elem_start_p;
elem->name->size = elem_len;
- elem->prefix->start = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
+ elem->prefix->start = elem_pref_start_p;
elem->prefix->size = pref_len;
#endif
guththila_stack_push(&wr->element, elem, env);
@@ -1397,6 +1402,7 @@
int stack_size = GUTHTHILA_STACK_SIZE(wr->namesp);
int temp = 0;
int elem_start = 0;
+ guththila_char_t *elem_start_p = NULL;
size_t elem_len = 0;
guththila_xml_writer_namesp_t * writer_namesp = NULL;
guththila_xml_writer_element_t * element;
@@ -1458,6 +1464,7 @@
}
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
/* Remember this element's name and prefix, so the closing tag can be written later. */
#ifndef GUTHTHILA_XML_WRITER_TOKEN
@@ -1475,8 +1482,7 @@
element->name =
guththila_tok_list_get_token(&wr->tok_list, env);
element->name->size = elem_len;
- element->name->start =
- GUTHTHILA_BUF_POS(wr->buffer, elem_start);
+ element->name->start = elem_start_p;
if (writer_namesp && (j < writer_namesp->no))
{
element->prefix =
@@ -1506,6 +1512,7 @@
int stack_size = GUTHTHILA_STACK_SIZE(wr->namesp);
int temp;
int elem_start = 0;
+ guththila_char_t *elem_start_p = NULL;
size_t elem_len = 0, pref_len = 0;
guththila_xml_writer_namesp_t * writer_namesp = NULL;
elem_len = strlen(local_name);
@@ -1536,6 +1543,7 @@
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, strlen(local_name), env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
}
else if(wr->status == START_EMPTY)
{
@@ -1545,6 +1553,7 @@
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, strlen(local_name), env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
}
else if(wr->status == BEGINING)
{
@@ -1553,6 +1562,7 @@
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, strlen(local_name), env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
}
else
{
@@ -1566,10 +1576,8 @@
element->name =
guththila_tok_list_get_token(&wr->tok_list, env);
element->name->size = elem_len;
- element->name->start =
- GUTHTHILA_BUF_POS(wr->buffer, elem_start);
- element->prefix =
- guththila_tok_list_get_token(&wr->tok_list, env);
+ element->name->start = elem_start_p;
+ element->prefix = guththila_tok_list_get_token(&wr->tok_list, env);
element->prefix->size = writer_namesp->name[j]->size;
element->prefix->start = writer_namesp->name[j]->start;
#endif
@@ -1594,6 +1602,8 @@
guththila_xml_writer_namesp_t * namesp = NULL;
guththila_xml_writer_element_t * elem = NULL;
int uri_start = 0, pref_start = 0, elem_start = 0, elem_pref_start = 0;
+ guththila_char_t *uri_start_p = NULL, *pref_start_p = NULL;
+ guththila_char_t *elem_start_p = NULL, *elem_pref_start_p = NULL ;
size_t uri_len = 0;
size_t pref_len = 0;
size_t elem_len = 0;
@@ -1637,18 +1647,22 @@
guththila_write(wr, "><", 2u, env);
elem_pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ elem_pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
if(!nmsp_found)
{
guththila_write(wr, " ", 1u, env);
guththila_write(wr, "xmlns:", 6u, env);
pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
guththila_write(wr, "=\"", 2u, env);
uri_start = wr->next;
guththila_write_xtoken(wr, namespace_uri, uri_len, env);
+ uri_start_p = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
guththila_write(wr, "\"", 1u, env);
}
wr->status = START_EMPTY;
@@ -1659,18 +1673,22 @@
guththila_write(wr, "/><", 2u, env);
elem_pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ elem_pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
if(!nmsp_found)
{
guththila_write(wr, " ", 1u, env);
guththila_write(wr, "xmlns:", 6u, env);
pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
guththila_write(wr, "=\"", 2u, env);
uri_start = wr->next;
guththila_write_xtoken(wr, namespace_uri, uri_len, env);
+ uri_start_p = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
guththila_write(wr, "\"", 1u, env);
}
}
@@ -1679,18 +1697,22 @@
guththila_write(wr, "<", 1u, env);
elem_pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ elem_pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
if(!nmsp_found)
{
guththila_write(wr, " ", 1u, env);
guththila_write(wr, "xmlns:", 6u, env);
pref_start = wr->next;
guththila_write_xtoken(wr, prefix, pref_len, env);
+ pref_start_p = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
guththila_write(wr, "=\"", 2u, env);
uri_start = wr->next;
guththila_write_xtoken(wr, namespace_uri, uri_len, env);
+ uri_start_p = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
guththila_write(wr, "\"", 1u, env);
}
wr->status = START_EMPTY;
@@ -1722,10 +1744,10 @@
*
GUTHTHILA_XML_WRITER_NAMESP_DEF_SIZE);
namesp->name[0] = guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->name[0]->start = GUTHTHILA_BUF_POS(wr->buffer, pref_start);
+ namesp->name[0]->start = pref_start_p;
namesp->name[0]->size = pref_len;
namesp->uri[0] = guththila_tok_list_get_token(&wr->tok_list, env);
- namesp->uri[0]->start = GUTHTHILA_BUF_POS(wr->buffer, uri_start);
+ namesp->uri[0]->start = uri_start_p;
namesp->uri[0]->size = uri_len;
#endif
namesp->no = 1;
@@ -1740,9 +1762,9 @@
#else
elem->name = guththila_tok_list_get_token(&wr->tok_list, env);
elem->prefix = guththila_tok_list_get_token(&wr->tok_list, env);
- elem->name->start = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
+ elem->name->start = elem_start_p;
elem->name->size = elem_len;
- elem->prefix->start = GUTHTHILA_BUF_POS(wr->buffer, elem_pref_start);
+ elem->prefix->start = elem_pref_start_p;
elem->prefix->size = pref_len;
#endif
guththila_stack_push(&wr->element, elem, env);
@@ -1761,6 +1783,7 @@
int stack_size = GUTHTHILA_STACK_SIZE(wr->namesp);
int temp = 0;
int elem_start = 0;
+ guththila_char_t *elem_start_p = NULL;
size_t elem_len = 0;
guththila_xml_writer_namesp_t * writer_namesp = NULL;
guththila_xml_writer_element_t * element;
@@ -1822,6 +1845,7 @@
}
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, elem_len, env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
/* Remember this element's name and prefix, so the closing tag can be written later. */
#ifndef GUTHTHILA_XML_WRITER_TOKEN
@@ -1839,8 +1863,7 @@
element->name =
guththila_tok_list_get_token(&wr->tok_list, env);
element->name->size = elem_len;
- element->name->start =
- GUTHTHILA_BUF_POS(wr->buffer, elem_start);
+ element->name->start = elem_start_p;
if (writer_namesp && (j < writer_namesp->no))
{
element->prefix =
@@ -1870,6 +1893,7 @@
int stack_size = GUTHTHILA_STACK_SIZE(wr->namesp);
int temp;
int elem_start = 0;
+ guththila_char_t *elem_start_p = NULL ;
size_t elem_len = 0, pref_len = 0;
guththila_xml_writer_namesp_t * writer_namesp = NULL;
elem_len = strlen(local_name);
@@ -1900,6 +1924,7 @@
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, strlen(local_name), env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
}
else if(wr->status == START_EMPTY)
{
@@ -1909,6 +1934,7 @@
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, strlen(local_name), env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
}
else if(wr->status == BEGINING)
{
@@ -1917,6 +1943,7 @@
guththila_write(wr, ":", 1u, env);
elem_start = wr->next;
guththila_write_xtoken(wr, local_name, strlen(local_name), env);
+ elem_start_p = GUTHTHILA_BUF_POS(wr->buffer, elem_start);
}
else
{
@@ -1930,8 +1957,7 @@
element->name =
guththila_tok_list_get_token(&wr->tok_list, env);
element->name->size = elem_len;
- element->name->start =
- GUTHTHILA_BUF_POS(wr->buffer, elem_start);
+ element->name->start = elem_start_p;
element->prefix =
guththila_tok_list_get_token(&wr->tok_list, env);
element->prefix->size = writer_namesp->name[j]->size;