You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by mi...@apache.org on 2007/06/25 15:08:30 UTC
svn commit: r550488 [2/3] - in /webservices/axis2/trunk/c/guththila:
include/ src/
Modified: webservices/axis2/trunk/c/guththila/src/guththila_xml_parser.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/guththila/src/guththila_xml_parser.c?view=diff&rev=550488&r1=550487&r2=550488
==============================================================================
--- webservices/axis2/trunk/c/guththila/src/guththila_xml_parser.c (original)
+++ webservices/axis2/trunk/c/guththila/src/guththila_xml_parser.c Mon Jun 25 06:08:28 2007
@@ -23,19 +23,17 @@
#define GUTHTHILA_VALIDATION_PARSER
-static int GUTHTHILA_CALL guththila_next_char(guththila_t *m, int eof);
-static int GUTHTHILA_CALL guththila_next_no_char(guththila_t *m, int eof, char *bytes, int no);
-
-int is_inited = 0;
-static void GUTHTHILA_CALL guththila_token_close(guththila_t *m, guththila_token_t *tok, int tok_type, int referer);
-static int GUTHTHILA_CALL guththila_process_xml_dec(guththila_t *m);
+static int GUTHTHILA_CALL guththila_next_char(guththila_t *m, int eof, axutil_env_t *env);
+static int GUTHTHILA_CALL guththila_next_no_char(guththila_t *m, int eof, char *bytes, int no, axutil_env_t *env);
+static void GUTHTHILA_CALL guththila_token_close(guththila_t *m, guththila_token_t *tok, int tok_type, int referer, axutil_env_t *env);
+static int GUTHTHILA_CALL guththila_process_xml_dec(guththila_t *m, axutil_env_t *env);
#ifndef GUTHTHILA_SKIP_SPACES
-#define GUTHTHILA_SKIP_SPACES(m, c) while (0x20 == c || 0x9 == c || 0xD == c || 0xA == c){c = guththila_next_char(m, 0);}
+#define GUTHTHILA_SKIP_SPACES(m, c, _env) while (0x20 == c || 0x9 == c || 0xD == c || 0xA == c){c = guththila_next_char(m, 0, _env);}
#endif
#ifndef GUTHTHILA_SKIP_SPACES_WITH_NEW_LINE
-#define GUTHTHILA_SKIP_SPACES_WITH_NEW_LINE(m, c) while (0x20 == c || 0x9 == c || 0xD == c || 0xA == c || '\n' == c){c = guththila_next_char(m, 0);}
+#define GUTHTHILA_SKIP_SPACES_WITH_NEW_LINE(m, c, _env) while (0x20 == c || 0x9 == c || 0xD == c || 0xA == c || '\n' == c){c = guththila_next_char(m, 0, _env);}
#endif
#ifndef GUTHTHILA_LAST_CHAR
@@ -43,19 +41,19 @@
#endif
#ifndef GUTHTHILA_TOKEN_OPEN
-#define GUTHTHILA_TOKEN_OPEN(m, tok) \
- m->temp_tok = guththila_tok_list_get_token(&m->tokens); \
+#define GUTHTHILA_TOKEN_OPEN(m, tok, _env) \
+ m->temp_tok = guththila_tok_list_get_token(&m->tokens, _env); \
m->temp_tok->type = _Unknown; \
m->temp_tok->_start = m->next; \
m->reader->last_start = m->next;
#endif
#ifndef GUTHTHILA_PROCESS_EQU
-#define GUTHTHILA_PROCESS_EQU(m, c, ic) \
- GUTHTHILA_SKIP_SPACES(m, c); \
+#define GUTHTHILA_PROCESS_EQU(m, c, ic, _env) \
+ GUTHTHILA_SKIP_SPACES(m, c, _env); \
if (0x3D == c){ \
- ic = guththila_next_char(m, 0); \
- GUTHTHILA_SKIP_SPACES(m, ic); \
+ ic = guththila_next_char(m, 0, _env); \
+ GUTHTHILA_SKIP_SPACES(m, ic, _env); \
}
#endif
@@ -72,11 +70,25 @@
(_namesp->uri = _uri);
#endif
-static void GUTHTHILA_CALL guththila_token_close(guththila_t *m, guththila_token_t *tok, int tok_type, int referer)
+#ifndef GUTHTHILA_IS_SPACE
+#define GUTHTHILA_IS_SPACE(c) (0x20 == c || 0xD == c || 0xA == c || 0x9 == c)
+#endif
+
+#ifndef GUTHTHILA_IS_VALID_STRING_CHAR
+#define GUTHTHILA_IS_VALID_STRING_CHAR(c) (isalpha(c) || '_' == c || ':' == c)
+#endif
+
+
+#ifndef GUTHTHILA_IS_VALID_STARTING_CHAR
+#define GUTHTHILA_IS_VALID_STARTING_CHAR(c) (isalpha(c) || '_' == c || ':' == c)
+#endif
+
+static void GUTHTHILA_CALL guththila_token_close(guththila_t *m, guththila_token_t *tok, int tok_type, int referer, axutil_env_t *env)
{
guththila_attr_t *attr = NULL;
guththila_element_t *elem = NULL;
guththila_elem_namesp_t *e_namesp = NULL;
+ guththila_namespace_t *namesp;
int counter = 0, nmsp_no = 0, i = 0;
m->temp_tok->type = tok_type;
m->temp_tok->size = m->next - m->temp_tok->_start;
@@ -97,32 +109,39 @@
(m->temp_prefix->start)[1] == 'm' && (m->temp_prefix->start)[2] == 'l' &&
(m->temp_prefix->start)[3] == 'n' && (m->temp_prefix->start)[4] == 's' ){
#ifndef GUTHTHILA_VALIDATION_PARSER
- namesp = (guththila_namespace_t *) malloc(sizeof(guththila_namespace_t));
+ namesp = (guththila_namespace_t *) AXIS2_MALLOC(sizeof(guththila_namespace_t));
GUTHTHILA_NAMESPACE_INITIALIZE(namesp, m->temp_name, m->temp_tok);
guththila_stack_push(&m->namesp, namesp);
#else
- elem = (guththila_element_t *)guththila_stack_peek(&m->elem);
+ elem = (guththila_element_t *)guththila_stack_peek(&m->elem, env);
if (elem && !elem->is_namesp) {
- e_namesp = (guththila_elem_namesp_t *)malloc(sizeof(guththila_elem_namesp_t));
+ e_namesp = (guththila_elem_namesp_t *)AXIS2_MALLOC(env->allocator, sizeof(guththila_elem_namesp_t));
if (e_namesp) {
- e_namesp->namesp = (guththila_namespace_t *)malloc(sizeof(guththila_namespace_t) * GUTHTHILA_NAMESPACE_DEF_SIZE);
+ e_namesp->namesp = (guththila_namespace_t *)AXIS2_MALLOC(env->allocator, sizeof(guththila_namespace_t) * GUTHTHILA_NAMESPACE_DEF_SIZE);
if (e_namesp->namesp) {
e_namesp->no = 1;
e_namesp->size = GUTHTHILA_NAMESPACE_DEF_SIZE;
e_namesp->namesp[0].name = m->temp_name;
e_namesp->namesp[0].uri = m->temp_tok;
- guththila_stack_push(&m->namesp, e_namesp);
+ guththila_stack_push(&m->namesp, e_namesp, env);
elem->is_namesp = 1;
}
}
} else {
- e_namesp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp);
+ e_namesp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp, env);
if (e_namesp->no < e_namesp->size) {
e_namesp->namesp[e_namesp->no].name = m->temp_name;
e_namesp->namesp[e_namesp->no].uri = m->temp_tok;
e_namesp->no++;
} else {
- e_namesp->namesp = (guththila_namespace_t *)realloc(e_namesp->namesp , sizeof(guththila_namespace_t) * e_namesp->size * 2);
+ /*e_namesp->namesp = (guththila_namespace_t *)realloc(e_namesp->namesp , sizeof(guththila_namespace_t) * e_namesp->size * 2);*/
+ namesp = (guththila_namespace_t *)AXIS2_MALLOC(env->allocator , sizeof(guththila_namespace_t) * e_namesp->size * 2);
+ for (i = 0; i < e_namesp->no; i++) {
+ namesp[i].name = e_namesp->namesp[i].name;
+ namesp[i].uri = e_namesp->namesp[i].uri;
+ }
+ AXIS2_FREE(env->allocator, e_namesp->namesp);
+ e_namesp->namesp = namesp;
if (e_namesp->namesp) {
e_namesp->size *= 2;
e_namesp->namesp[e_namesp->no].name = m->temp_name;
@@ -133,16 +152,16 @@
}
#endif
} else {
- attr = (guththila_attr_t *) malloc(sizeof(guththila_attr_t));
+ attr = (guththila_attr_t *) AXIS2_MALLOC(env->allocator, sizeof(guththila_attr_t));
#ifdef GUTHTHILA_VALIDATION_PARSER
if (m->temp_prefix) {
nmsp_no = GUTHTHILA_STACK_SIZE(m->namesp);
for (counter = 0; counter < nmsp_no; counter++) {
- e_namesp = (guththila_elem_namesp_t *)guththila_stack_get_by_index(&m->namesp, counter);
+ e_namesp = (guththila_elem_namesp_t *)guththila_stack_get_by_index(&m->namesp, counter, env);
for (i = 0; i < e_namesp->no; i++) {
- if (!guththila_tok_tok_cmp(e_namesp->namesp[i].name, m->temp_prefix)) {
+ if (!guththila_tok_tok_cmp(e_namesp->namesp[i].name, m->temp_prefix, env)) {
GUTHTHILA_ATTRIBUTE_INITIALIZE(attr, m->temp_prefix, m->temp_name, m->temp_tok);
- guththila_stack_push(&m->attrib, attr);
+ guththila_stack_push(&m->attrib, attr, env);
counter += nmsp_no;
break;
}
@@ -150,11 +169,11 @@
}
} else {
GUTHTHILA_ATTRIBUTE_INITIALIZE(attr, m->temp_prefix, m->temp_name, m->temp_tok);
- guththila_stack_push(&m->attrib, attr);
+ guththila_stack_push(&m->attrib, attr, env);
}
#else
GUTHTHILA_ATTRIBUTE_INITIALIZE(attr, m->temp_prefix, m->temp_name, m->temp_tok);
- guththila_stack_push(&m->attrib, attr);
+ guththila_stack_push(&m->attrib, attr, env);
#endif
}
m->temp_prefix = NULL;
@@ -178,40 +197,36 @@
m->temp_prefix = NULL; \
m->temp_name = NULL; \
m->temp_tok = NULL; \
- if (m->value) guththila_tok_list_release_token(&m->tokens, m->value); \
+ if (m->value) guththila_tok_list_release_token(&m->tokens, m->value, env); \
m->name = NULL; \
m->prefix = NULL; \
m->value = NULL;
#endif
-
-#ifndef GUTHTHILA_TOKEN_CLOSE
-#define GUTHTHILA_TOKEN_CLOSE(m, tok, tok_type, referer) guththila_token_close(m, tok, tok_type, referer)
-#endif
-
-GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_init(guththila_t *m, void *reader)
+GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_init(guththila_t *m, void *reader, axutil_env_t *env)
{
if (!((guththila_reader_t *)reader)) return GUTHTHILA_FAILURE;
m->reader = (guththila_reader_t *)reader;
- if (!guththila_tok_list_init(&m->tokens)){
+ if (!guththila_tok_list_init(&m->tokens, env)){
return GUTHTHILA_FAILURE;
}
if (m->reader->type == GUTHTHILA_MEMORY_READER) {
- guththila_buffer_init_for_buffer(&m->buffer, m->reader->buff, m->reader->buff_size);
+ guththila_buffer_init_for_buffer(&m->buffer, m->reader->buff, m->reader->buff_size, env);
} else if (m->reader->type == GUTHTHILA_FILE_READER || GUTHTHILA_IO_READER) {
- guththila_buffer_init(&m->buffer, 0);
+ guththila_buffer_init(&m->buffer, 0, env);
}
- guththila_stack_init(&m->elem);
- guththila_stack_init(&m->attrib);
- guththila_stack_init(&m->namesp);
+ guththila_stack_init(&m->elem, env);
+ guththila_stack_init(&m->attrib, env);
+ guththila_stack_init(&m->namesp, env);
m->name = NULL;
m->prefix = NULL;
m->value = NULL;
m->status = S_1;
+
m->guththila_event = -1;
m->next = 0;
@@ -223,25 +238,25 @@
return GUTHTHILA_SUCCESS;
}
-GUTHTHILA_EXPORT guththila_t* GUTHTHILA_CALL guththila_create(void *reader)
+GUTHTHILA_EXPORT guththila_t* GUTHTHILA_CALL guththila_create(void *reader, axutil_env_t *env)
{
- guththila_t *m = (guththila_t *) malloc(sizeof(guththila_t *));
+ guththila_t *m = (guththila_t *) AXIS2_MALLOC(env->allocator, sizeof(guththila_t *));
if (!m) return NULL;
m->reader = (guththila_reader_t *)reader;
- if (!guththila_tok_list_init(&m->tokens)){
- free(m);
+ if (!guththila_tok_list_init(&m->tokens, env)){
+ AXIS2_FREE(env->allocator, m);
return NULL;
}
if (m->reader->type == GUTHTHILA_MEMORY_READER) {
- guththila_buffer_init_for_buffer(&m->buffer, m->reader->buff, m->reader->buff_size);
+ guththila_buffer_init_for_buffer(&m->buffer, m->reader->buff, m->reader->buff_size, env);
} else if (m->reader->type == GUTHTHILA_FILE_READER || GUTHTHILA_IO_READER) {
- guththila_buffer_init(&m->buffer, 0);
+ guththila_buffer_init(&m->buffer, 0, env);
}
- guththila_stack_init(&m->elem);
- guththila_stack_init(&m->attrib);
- guththila_stack_init(&m->namesp);
+ guththila_stack_init(&m->elem, env);
+ guththila_stack_init(&m->attrib, env);
+ guththila_stack_init(&m->namesp, env);
m->name = NULL;
m->prefix = NULL;
@@ -259,122 +274,122 @@
return m;
}
-GUTHTHILA_EXPORT void GUTHTHILA_CALL guththila_free(guththila_t *m)
+GUTHTHILA_EXPORT void GUTHTHILA_CALL guththila_free(guththila_t *m, axutil_env_t *env)
{
int size = 0, i = 0;
guththila_namespace_t *namesp = NULL;
guththila_attr_t *attr = NULL;
if (m->prefix){
- guththila_tok_list_release_token(&m->tokens, m->prefix);
+ guththila_tok_list_release_token(&m->tokens, m->prefix, env);
}
if (m->name){
- guththila_tok_list_release_token(&m->tokens, m->name);
+ guththila_tok_list_release_token(&m->tokens, m->name, env);
}
if (m->value){
- guththila_tok_list_release_token(&m->tokens, m->value);
+ guththila_tok_list_release_token(&m->tokens, m->value, env);
}
if (m->temp_tok){
- guththila_tok_list_release_token(&m->tokens, m->temp_tok);
+ guththila_tok_list_release_token(&m->tokens, m->temp_tok, env);
}
if (m->temp_name){
- guththila_tok_list_release_token(&m->tokens, m->temp_name);
+ guththila_tok_list_release_token(&m->tokens, m->temp_name, env);
}
if (m->temp_prefix){
- guththila_tok_list_release_token(&m->tokens, m->temp_prefix);
+ guththila_tok_list_release_token(&m->tokens, m->temp_prefix, env);
}
size = GUTHTHILA_STACK_SIZE(m->attrib);
for ( i = 0; i < size; i++) {
- attr = (guththila_attr_t *)guththila_stack_pop(&m->attrib);
+ attr = (guththila_attr_t *)guththila_stack_pop(&m->attrib, env);
if (attr) {
- if (attr->name) guththila_tok_list_release_token(&m->tokens, attr->name);
- if (attr->pref) guththila_tok_list_release_token(&m->tokens, attr->pref);
- free(attr);
+ if (attr->name) guththila_tok_list_release_token(&m->tokens, attr->name, env);
+ if (attr->pref) guththila_tok_list_release_token(&m->tokens, attr->pref, env);
+ AXIS2_FREE(env->allocator, attr);
}
}
- guththila_stack_free_data(&m->attrib);
+ guththila_stack_un_init(&m->attrib, env);
size = GUTHTHILA_STACK_SIZE(m->namesp);
for ( i = 0; i < size; i++) {
- namesp = (guththila_namespace_t *)guththila_stack_pop(&m->namesp);
+ namesp = (guththila_namespace_t *)guththila_stack_pop(&m->namesp, env);
if (namesp) {
- if (namesp->name) guththila_tok_list_release_token(&m->tokens, namesp->name);
- if (namesp->uri) guththila_tok_list_release_token(&m->tokens, namesp->uri);
- free(namesp);
+ if (namesp->name) guththila_tok_list_release_token(&m->tokens, namesp->name, env);
+ if (namesp->uri) guththila_tok_list_release_token(&m->tokens, namesp->uri, env);
+ AXIS2_FREE(env->allocator, namesp);
}
}
- guththila_stack_free_data(&m->namesp);
+ guththila_stack_un_init(&m->namesp, env);
- guththila_tok_list_free_data(&m->tokens);
+ guththila_tok_list_free_data(&m->tokens, env);
- guththila_buffer_un_init(&m->buffer);
- free(m);
+ guththila_buffer_un_init(&m->buffer, env);
+ AXIS2_FREE(env->allocator, m);
return;
}
-GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_un_init(guththila_t *m)
+GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_un_init(guththila_t *m, axutil_env_t *env)
{
int size = 0, i = 0;
guththila_namespace_t *namesp = NULL;
guththila_attr_t *attr = NULL;
if (m->prefix){
- guththila_tok_list_release_token(&m->tokens, m->prefix);
+ guththila_tok_list_release_token(&m->tokens, m->prefix, env);
}
if (m->name){
- guththila_tok_list_release_token(&m->tokens, m->name);
+ guththila_tok_list_release_token(&m->tokens, m->name, env);
}
if (m->value){
- guththila_tok_list_release_token(&m->tokens, m->value);
+ guththila_tok_list_release_token(&m->tokens, m->value, env);
}
if (m->temp_tok){
- guththila_tok_list_release_token(&m->tokens, m->temp_tok);
+ guththila_tok_list_release_token(&m->tokens, m->temp_tok, env);
}
if (m->temp_name){
- guththila_tok_list_release_token(&m->tokens, m->temp_name);
+ guththila_tok_list_release_token(&m->tokens, m->temp_name, env);
}
if (m->temp_prefix){
- guththila_tok_list_release_token(&m->tokens, m->temp_prefix);
+ guththila_tok_list_release_token(&m->tokens, m->temp_prefix, env);
}
size = GUTHTHILA_STACK_SIZE(m->attrib);
for ( i = 0; i < size; i++) {
- attr = (guththila_attr_t *)guththila_stack_pop(&m->attrib);
+ attr = (guththila_attr_t *)guththila_stack_pop(&m->attrib, env);
if (attr) {
- if (attr->name) guththila_tok_list_release_token(&m->tokens, attr->name);
- if (attr->pref) guththila_tok_list_release_token(&m->tokens, attr->pref);
- free(attr);
+ if (attr->name) guththila_tok_list_release_token(&m->tokens, attr->name, env);
+ if (attr->pref) guththila_tok_list_release_token(&m->tokens, attr->pref, env);
+ AXIS2_FREE(env->allocator, attr);
}
}
- guththila_stack_free_data(&m->attrib);
+ guththila_stack_un_init(&m->attrib, env);
size = GUTHTHILA_STACK_SIZE(m->namesp);
for ( i = 0; i < size; i++) {
- namesp = (guththila_namespace_t *)guththila_stack_pop(&m->namesp);
+ namesp = (guththila_namespace_t *)guththila_stack_pop(&m->namesp, env);
if (namesp) {
- if (namesp->name) guththila_tok_list_release_token(&m->tokens, namesp->name);
- if (namesp->uri) guththila_tok_list_release_token(&m->tokens, namesp->uri);
- free(namesp);
+ if (namesp->name) guththila_tok_list_release_token(&m->tokens, namesp->name, env);
+ if (namesp->uri) guththila_tok_list_release_token(&m->tokens, namesp->uri, env);
+ AXIS2_FREE(env->allocator, namesp);
}
}
- guththila_stack_free_data(&m->namesp);
+ guththila_stack_un_init(&m->namesp, env);
- guththila_tok_list_free_data(&m->tokens);
- guththila_buffer_un_init(&m->buffer);
+ guththila_tok_list_free_data(&m->tokens, env);
+ guththila_buffer_un_init(&m->buffer, env);
return GUTHTHILA_SUCCESS;
}
-GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_next(guththila_t *m)
+GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_next(guththila_t *m, axutil_env_t *env)
{
guththila_element_t *elem = NULL;
guththila_elem_namesp_t *nmsp = NULL;
@@ -383,41 +398,41 @@
char c_arra[16] = {0};
int c = -1;
guththila_attr_t *attr = NULL;
- int size = 0, i = 0, nmsp_counter = 0, loop = GUTHTHILA_FALSE, white_space = 0;
-
+ int size = 0, i = 0, nmsp_counter, loop = 0, white_space = 0;
size = GUTHTHILA_STACK_SIZE(m->attrib);
for ( i = 0; i < size; i++) {
- attr = (guththila_attr_t *)guththila_stack_pop(&m->attrib);
+ attr = (guththila_attr_t *)guththila_stack_pop(&m->attrib, env);
if (attr) {
- if (attr->name) guththila_tok_list_release_token(&m->tokens, attr->name);
- if (attr->pref) guththila_tok_list_release_token(&m->tokens, attr->pref);
- free(attr);
+ if (attr->name) guththila_tok_list_release_token(&m->tokens, attr->name, env);
+ if (attr->pref) guththila_tok_list_release_token(&m->tokens, attr->pref, env);
+ AXIS2_FREE(env->allocator, attr);
}
}
GUTHTHILA_VARIABLE_INITIALZE(m);
#ifdef GUTHTHILA_VALIDATION_PARSER
if (m->guththila_event == GUTHTHILA_EMPTY_ELEMENT) {
- elem = (guththila_element_t *)guththila_stack_pop(&m->elem);
+ elem = (guththila_element_t *)guththila_stack_pop(&m->elem, env);
if (elem->is_namesp) {
- nmsp = (guththila_elem_namesp_t *)guththila_stack_pop(&m->namesp);
+ nmsp = (guththila_elem_namesp_t *)guththila_stack_pop(&m->namesp, env);
for (nmsp_counter = 0; nmsp_counter < nmsp->no; nmsp_counter++) {
- guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].name);
- guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].uri);
+ guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].name, env);
+ guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].uri, env);
}
- free(nmsp);
+ AXIS2_FREE(env->allocator, nmsp);
}
- if (elem->name) guththila_tok_list_release_token(&m->tokens, elem->name);
- if (elem->prefix) guththila_tok_list_release_token(&m->tokens, elem->prefix);
- free(elem);
+ if (elem->name) guththila_tok_list_release_token(&m->tokens, elem->name, env);
+ if (elem->prefix) guththila_tok_list_release_token(&m->tokens, elem->prefix, env);
+ AXIS2_FREE(env->allocator, elem);
}
#endif
do {
- c = guththila_next_char(m, 0);
+ loop = 0;
+ c = guththila_next_char(m, 0, env);
if (m->status == S_1){
while (isspace(c)){
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
if (c == -1)
return -1;
}
@@ -427,35 +442,34 @@
return -1;
}
}
- loop = 0;
if ('<' == c && m->status == S_2) {
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
if (c != '?' && c != '!' && c != '/'){
if (GUTHTHILA_IS_VALID_STARTING_CHAR(c)){
- GUTHTHILA_TOKEN_OPEN(m, tok);
- c = guththila_next_char(m, 0);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
+ c = guththila_next_char(m, 0, env);
while(!GUTHTHILA_IS_SPACE(c) && c != '>' && c != '/'){
if (c != ':'){
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
} else {
- GUTHTHILA_TOKEN_CLOSE(m, tok, _prefix, 0);
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ guththila_token_close(m, tok, _prefix, 0, env);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
}
}
- GUTHTHILA_TOKEN_CLOSE(m, tok, _name, 0);
+ guththila_token_close(m, tok, _name, 0, env);
#ifdef GUTHTHILA_VALIDATION_PARSER
- elem = (guththila_element_t *)malloc(sizeof(guththila_element_t));
+ elem = (guththila_element_t *)AXIS2_MALLOC(env->allocator, sizeof(guththila_element_t));
elem->name = m->name;
elem->prefix = m->prefix;
elem->is_namesp = 0;
- guththila_stack_push(&m->elem, elem);
+ guththila_stack_push(&m->elem, elem, env);
#endif
}
- GUTHTHILA_SKIP_SPACES(m, c);
+ GUTHTHILA_SKIP_SPACES(m, c, env);
for(;;){
if (c == '/') {
- if ('>' == guththila_next_char(m, 0)){
+ if ('>' == guththila_next_char(m, 0, env)){
return m->guththila_event = GUTHTHILA_EMPTY_ELEMENT;
} else {
return -1;
@@ -465,32 +479,32 @@
return GUTHTHILA_START_ELEMENT;
} else if (c != -1){
if (GUTHTHILA_IS_VALID_STARTING_CHAR(c)){
- GUTHTHILA_TOKEN_OPEN(m, tok);
- c = guththila_next_char(m, 0);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
+ c = guththila_next_char(m, 0, env);
while(!GUTHTHILA_IS_SPACE(c) && c != '='){
if (c != ':'){
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
} else if (c == ':'){
- GUTHTHILA_TOKEN_CLOSE(m, tok, _prefix, 0);
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ guththila_token_close(m, tok, _prefix, 0, env);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
}
}
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_name, 0);
+ guththila_token_close(m, tok, _attribute_name, 0, env);
} else {
return -1;
}
- GUTHTHILA_PROCESS_EQU(m, c, quote);
+ GUTHTHILA_PROCESS_EQU(m, c, quote, env);
if ('\'' == quote || '\"' == quote) {
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
while (c != quote) {
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
}
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_value, 0);
- c = guththila_next_char(m, 0);
- GUTHTHILA_SKIP_SPACES(m, c);
+ guththila_token_close(m, tok, _attribute_value, 0, env);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_SKIP_SPACES(m, c, env);
} else {
return -1;
}
@@ -500,65 +514,65 @@
}
} else if (c == '/'){
m->guththila_event = GUTHTHILA_END_ELEMENT;
- c = guththila_next_char(m, -1);
+ c = guththila_next_char(m, -1, env);
if (GUTHTHILA_IS_VALID_STARTING_CHAR(c)){
- GUTHTHILA_TOKEN_OPEN(m, tok);
- c = guththila_next_char(m, 0);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
+ c = guththila_next_char(m, 0, env);
while(!GUTHTHILA_IS_SPACE(c) && c != '>'){
if (c != ':'){
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
}else {
- GUTHTHILA_TOKEN_CLOSE(m, tok, _prefix, 0);
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ guththila_token_close(m, tok, _prefix, 0, env);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
}
}
- GUTHTHILA_TOKEN_CLOSE(m, tok, _name, 0);
+ guththila_token_close(m, tok, _name, 0, env);
#ifdef GUTHTHILA_VALIDATION_PARSER
- elem = (guththila_element_t *)guththila_stack_pop(&m->elem);
+ elem = (guththila_element_t *)guththila_stack_pop(&m->elem, env);
if (!elem || (!elem->prefix && m->prefix) || (elem->prefix && !m->prefix)) return -1;
- if (guththila_tok_tok_cmp(m->name, elem->name)) {
+ if (guththila_tok_tok_cmp(m->name, elem->name, env)) {
return -1;
}
- if (elem->prefix && m->prefix && guththila_tok_tok_cmp(m->prefix, elem->prefix)) {
+ if (elem->prefix && m->prefix && guththila_tok_tok_cmp(m->prefix, elem->prefix, env)) {
return -1;
}
if (elem->is_namesp) {
- nmsp = (guththila_elem_namesp_t *)guththila_stack_pop(&m->namesp);
+ nmsp = (guththila_elem_namesp_t *)guththila_stack_pop(&m->namesp, env);
for (nmsp_counter = 0; nmsp_counter < nmsp->no; nmsp_counter++) {
- guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].name);
- guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].uri);
+ guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].name, env);
+ guththila_tok_list_release_token(&m->tokens, nmsp->namesp[i].uri, env);
}
- free(nmsp);
+ AXIS2_FREE(env->allocator, nmsp);
}
- if (elem->name) guththila_tok_list_release_token(&m->tokens, elem->name);
- if (elem->prefix) guththila_tok_list_release_token(&m->tokens, elem->prefix);
- free(elem);
+ if (elem->name) guththila_tok_list_release_token(&m->tokens, elem->name, env);
+ if (elem->prefix) guththila_tok_list_release_token(&m->tokens, elem->prefix, env);
+ AXIS2_FREE(env->allocator, elem);
#endif
- GUTHTHILA_SKIP_SPACES(m, c);
+ GUTHTHILA_SKIP_SPACES(m, c, env);
if (c != '>')
return -1;
return GUTHTHILA_END_ELEMENT;
}
return -1;
} else if(c == '!') {
- if (2 == guththila_next_no_char(m, 0, c_arra, 2) && '-' == c_arra[0] && '-' == c_arra[1]){
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ if (2 == guththila_next_no_char(m, 0, c_arra, 2, env) && '-' == c_arra[0] && '-' == c_arra[1]){
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
while (1) {
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
if ('-' == c) {
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
if ('-' == c) {
- if ('>' == guththila_next_char(m, 0)){
+ if ('>' == guththila_next_char(m, 0, env)){
m->guththila_event = GUTHTHILA_COMMENT;
while (c != '<') {
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
if (c == -1)
return -1;
}
- GUTHTHILA_TOKEN_CLOSE(m, tok, _char_data, 0);
+ guththila_token_close(m, tok, _char_data, 0, env);
m->next--;
return GUTHTHILA_COMMENT;
}
@@ -569,12 +583,12 @@
}
}
} else {
- c = guththila_next_char(m, 0);
+ c = guththila_next_char(m, 0, env);
while ('<' != c)
- c = guththila_next_char(m, -1);
+ c = guththila_next_char(m, -1, env);
}
} else if (c == '?'){
- c = guththila_process_xml_dec(m);
+ c = guththila_process_xml_dec(m, env);
if (c != -1)
return GUTHTHILA_START_DOCUMENT;
else
@@ -582,27 +596,23 @@
}
} else if (c != '<' && m->status == S_2 && c != -1){
m->guththila_event = GUTHTHILA_CHARACTER;
- if (!GUTHTHILA_IS_SPACE(c)) {
+ if (!GUTHTHILA_IS_SPACE(c))
white_space = 0;
- } else {
+ else
white_space = 1;
- }
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
do {
- c = guththila_next_char(m, -1);
- if (c == -1) return -1;
+ c = guththila_next_char(m, -1, env);
if (!GUTHTHILA_IS_SPACE(c) && c != '<')
white_space = 0;
-
} while (c != '<');
- GUTHTHILA_TOKEN_CLOSE(m, tok, _char_data, ref);
+ guththila_token_close(m, tok, _char_data, ref, env);
m->next--;
if (white_space) {
loop = 1;
- if (m->value) guththila_tok_list_release_token(&m->tokens, m->value);
+ if (m->value) guththila_tok_list_release_token(&m->tokens, m->value, env);
}
- else
- return GUTHTHILA_CHARACTER;
+ else return GUTHTHILA_CHARACTER;
} else {
return -1;
}
@@ -611,7 +621,7 @@
}
-static int GUTHTHILA_CALL guththila_process_xml_dec(guththila_t *m)
+static int GUTHTHILA_CALL guththila_process_xml_dec(guththila_t *m, axutil_env_t *env)
{
guththila_token_t *tok = NULL;
char c_arra[16] = {0};
@@ -619,89 +629,89 @@
int quote = -1;
int nc = -1;
- if (3 == guththila_next_no_char(m, GUTHTHILA_EOF, c_arra, 3) && 'x' == c_arra[0] && 'm' == c_arra[1] && 'l' == c_arra[2]) {
- c = guththila_next_char(m, GUTHTHILA_EOF);
- GUTHTHILA_SKIP_SPACES(m, c);
+ if (3 == guththila_next_no_char(m, GUTHTHILA_EOF, c_arra, 3, env) && 'x' == c_arra[0] && 'm' == c_arra[1] && 'l' == c_arra[2]) {
+ c = guththila_next_char(m, GUTHTHILA_EOF, env);
+ GUTHTHILA_SKIP_SPACES(m, c, env);
if (c == 'v') {
- GUTHTHILA_TOKEN_OPEN(m, tok);
- if(6 == guththila_next_no_char(m, 0, c_arra, 6) &&
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
+ if(6 == guththila_next_no_char(m, 0, c_arra, 6, env) &&
'e' == c_arra[0] && 'r' == c_arra[1] &&
's' == c_arra[2] && 'i' == c_arra[3] &&
'o' == c_arra[4] && 'n' == c_arra[5]) {
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_name, 0);
- GUTHTHILA_PROCESS_EQU(m, c, quote);
+ c = guththila_next_char(m, 0, env);
+ guththila_token_close(m, tok, _attribute_name, 0, env);
+ GUTHTHILA_PROCESS_EQU(m, c, quote, env);
- nc = guththila_next_char(m, 0);
+ nc = guththila_next_char(m, 0, env);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
while(nc != quote)
- nc = guththila_next_char(m, 0);
+ nc = guththila_next_char(m, 0, env);
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_value, 0);
+ guththila_token_close(m, tok, _attribute_value, 0, env);
- c = guththila_next_char(m, 0);
- GUTHTHILA_SKIP_SPACES(m, c);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_SKIP_SPACES(m, c, env);
} else{
return -1;
}
}
if (c == 'e') {
- GUTHTHILA_TOKEN_OPEN(m, tok);
- if(7 == guththila_next_no_char(m, 0, c_arra, 7) &&
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
+ if(7 == guththila_next_no_char(m, 0, c_arra, 7, env) &&
'n' == c_arra[0] && 'c' == c_arra[1] &&
'o' == c_arra[2] && 'd' == c_arra[3] &&
'i' == c_arra[4] && 'n' == c_arra[5] &&
'g' == c_arra[6]) {
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_name, 0);
- GUTHTHILA_PROCESS_EQU(m, c, quote);
+ c = guththila_next_char(m, 0, env);
+ guththila_token_close(m, tok, _attribute_name, 0, env);
+ GUTHTHILA_PROCESS_EQU(m, c, quote, env);
- nc = guththila_next_char(m, 0);
+ nc = guththila_next_char(m, 0, env);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
while(nc != quote)
- nc = guththila_next_char(m, 0);
+ nc = guththila_next_char(m, 0, env);
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_value, 0);
+ guththila_token_close(m, tok, _attribute_value, 0, env);
- c = guththila_next_char(m, 0);
- GUTHTHILA_SKIP_SPACES(m, c);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_SKIP_SPACES(m, c, env);
}
}
if (c == 's') {
- GUTHTHILA_TOKEN_OPEN(m, tok);
- if(9 == guththila_next_no_char(m, 0, c_arra, 9) &&
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
+ if(9 == guththila_next_no_char(m, 0, c_arra, 9, env) &&
't' == c_arra[0] && 'a' == c_arra[1] &&
'n' == c_arra[2] && 'd' == c_arra[3] &&
'a' == c_arra[4] && 'l' == c_arra[5] &&
'o' == c_arra[6] && 'n' == c_arra[7] &&
'e' == c_arra[8]) {
- c = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_name, 0);
- GUTHTHILA_PROCESS_EQU(m, c, quote);
+ c = guththila_next_char(m, 0, env);
+ guththila_token_close(m, tok, _attribute_name, 0, env);
+ GUTHTHILA_PROCESS_EQU(m, c, quote, env);
- nc = guththila_next_char(m, 0);
- GUTHTHILA_TOKEN_OPEN(m, tok);
+ nc = guththila_next_char(m, 0, env);
+ GUTHTHILA_TOKEN_OPEN(m, tok, env);
while(nc != quote)
- nc = guththila_next_char(m, 0);
+ nc = guththila_next_char(m, 0, env);
- GUTHTHILA_TOKEN_CLOSE(m, tok, _attribute_value, 0);
+ guththila_token_close(m, tok, _attribute_value, 0, env);
- c = guththila_next_char(m, 0);
- GUTHTHILA_SKIP_SPACES(m, c);
+ c = guththila_next_char(m, 0, env);
+ GUTHTHILA_SKIP_SPACES(m, c, env);
}
}
if (c == '?') {
- if ('>' == guththila_next_char(m, 0)){
+ if ('>' == guththila_next_char(m, 0, env)){
m->guththila_event = GUTHTHILA_START_DOCUMENT;
} else {
return -1;
@@ -712,170 +722,170 @@
}
-GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_get_attribute_count(guththila_t *m)
+GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_get_attribute_count(guththila_t *m, axutil_env_t *env)
{
return GUTHTHILA_STACK_SIZE(m->attrib);
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_name(guththila_t * m, guththila_attr_t * att)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_name(guththila_t * m, guththila_attr_t * att, axutil_env_t *env)
{
char *str = NULL;
if (att) {
- GUTHTHILA_TOKEN_TO_STRING(att->name, str);
+ GUTHTHILA_TOKEN_TO_STRING(att->name, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_value (guththila_t *m, guththila_attr_t * att)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_value (guththila_t *m, guththila_attr_t * att, axutil_env_t *env)
{
char *str = NULL;
if (att) {
- GUTHTHILA_TOKEN_TO_STRING(att->val, str);
+ GUTHTHILA_TOKEN_TO_STRING(att->val, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_prefix (guththila_t *m, guththila_attr_t * att)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_prefix (guththila_t *m, guththila_attr_t * att, axutil_env_t *env)
{
char *str = NULL;
if (att) {
- GUTHTHILA_TOKEN_TO_STRING(att->pref, str);
+ GUTHTHILA_TOKEN_TO_STRING(att->pref, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_attr_t * GUTHTHILA_CALL guththila_get_attribute (guththila_t * m)
+GUTHTHILA_EXPORT guththila_attr_t * GUTHTHILA_CALL guththila_get_attribute (guththila_t * m, axutil_env_t *env)
{
- return (guththila_attr_t *)guththila_stack_pop(&m->attrib);
+ return (guththila_attr_t *)guththila_stack_pop(&m->attrib, env);
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_name_by_number (guththila_t * m, int i)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_name_by_number (guththila_t * m, int i, axutil_env_t *env)
{
char *str = NULL;
- guththila_attr_t *attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1);
+ guththila_attr_t *attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1, env);
if (attr){
- GUTHTHILA_TOKEN_TO_STRING(attr->name, str);
+ GUTHTHILA_TOKEN_TO_STRING(attr->name, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_value_by_number (guththila_t * m, int i)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_value_by_number (guththila_t * m, int i, axutil_env_t *env)
{
char *str = NULL;
- guththila_attr_t *attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1);
+ guththila_attr_t *attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1, env);
if (attr){
- GUTHTHILA_TOKEN_TO_STRING(attr->val, str);
+ GUTHTHILA_TOKEN_TO_STRING(attr->val, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_prefix_by_number (guththila_t * m, int i)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_prefix_by_number (guththila_t * m, int i, axutil_env_t *env)
{
char *str = NULL;
- guththila_attr_t *attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1);
+ guththila_attr_t *attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1, env);
if (attr && attr->pref){
- GUTHTHILA_TOKEN_TO_STRING(attr->pref, str);
+ GUTHTHILA_TOKEN_TO_STRING(attr->pref, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_name (guththila_t * m)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_name (guththila_t * m, axutil_env_t *env)
{
char *str = NULL;
if (m->name){
- GUTHTHILA_TOKEN_TO_STRING(m->name, str);
+ GUTHTHILA_TOKEN_TO_STRING(m->name, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_prefix (guththila_t * m)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_prefix (guththila_t * m, axutil_env_t *env)
{
char *str = NULL;
if (m->prefix){
- GUTHTHILA_TOKEN_TO_STRING(m->prefix, str);
+ GUTHTHILA_TOKEN_TO_STRING(m->prefix, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_value (guththila_t * m)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_value (guththila_t * m, axutil_env_t *env)
{
char *str = NULL;
if (m->value){
- GUTHTHILA_TOKEN_TO_STRING(m->value, str);
+ GUTHTHILA_TOKEN_TO_STRING(m->value, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_namespace_t * GUTHTHILA_CALL guththila_get_namespace (guththila_t * m)
+GUTHTHILA_EXPORT guththila_namespace_t * GUTHTHILA_CALL guththila_get_namespace (guththila_t * m, axutil_env_t *env)
{
#ifndef GUTHTHILA_VALIDATION_PARSER
- return (guththila_namespace_t *)guththila_stack_pop(&m->namesp);
+ return (guththila_namespace_t *)guththila_stack_pop(&m->namesp, env);
#else
return NULL;
#endif
}
-GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_get_namespace_count (guththila_t *m)
+GUTHTHILA_EXPORT int GUTHTHILA_CALL guththila_get_namespace_count (guththila_t *m, axutil_env_t *env)
{
#ifndef GUTHTHILA_VALIDATION_PARSER
return GUTHTHILA_STACK_SIZE(m->namesp);
#else
guththila_elem_namesp_t *nmsp = NULL;
- if (((guththila_element_t *)guththila_stack_peek(&m->elem))->is_namesp) {
- nmsp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp);
+ if (((guththila_element_t *)guththila_stack_peek(&m->elem, env))->is_namesp) {
+ nmsp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp, env);
return nmsp->no;
}
return 0;
#endif
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_uri (guththila_t * m, guththila_namespace_t * ns)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_uri (guththila_t * m, guththila_namespace_t * ns, axutil_env_t *env)
{
char *str = NULL;
if (ns->uri){
- GUTHTHILA_TOKEN_TO_STRING(ns->uri, str);
+ GUTHTHILA_TOKEN_TO_STRING(ns->uri, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_prefix (guththila_t *m, guththila_namespace_t * ns)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_prefix (guththila_t *m, guththila_namespace_t * ns, axutil_env_t *env)
{
char *str = NULL;
if (ns->name){
- GUTHTHILA_TOKEN_TO_STRING(ns->name, str);
+ GUTHTHILA_TOKEN_TO_STRING(ns->name, str, env);
return str;
}
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_prefix_by_number (guththila_t * m, int i)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_prefix_by_number (guththila_t * m, int i, axutil_env_t *env)
{
char *str = NULL;
#ifndef GUTHTHILA_VALIDATION_PARSER
if (GUTHTHILA_STACK_SIZE(m->namesp) >= i){
- namesp = guththila_stack_get_by_index(&m->namesp, i);
+ namesp = guththila_stack_get_by_index(&m->namesp, i, env);
if (namesp && namesp->name) {
- GUTHTHILA_TOKEN_TO_STRING(namesp->name, str);
+ GUTHTHILA_TOKEN_TO_STRING(namesp->name, str, env);
return str;
}
}
#else
guththila_elem_namesp_t *nmsp = NULL;
- if (((guththila_element_t *)guththila_stack_peek(&m->elem))->is_namesp) {
- nmsp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp);
+ if (((guththila_element_t *)guththila_stack_peek(&m->elem, env))->is_namesp) {
+ nmsp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp, env);
if (nmsp && nmsp->no >= i) {
- GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[i - 1].name, str);
+ GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[i - 1].name, str, env);
return str;
}
}
@@ -883,24 +893,24 @@
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_uri_by_number (guththila_t * m, int i)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_namespace_uri_by_number (guththila_t * m, int i, axutil_env_t *env)
{
char *str = NULL;
/*TODO check the given index, this can begn from 1, here I assume begin from 0*/
#ifndef GUTHTHILA_VALIDATION_PARSER
if (GUTHTHILA_STACK_SIZE(m->namesp) > i){
- namesp = guththila_stack_get_by_index(&m->namesp, i);
+ namesp = guththila_stack_get_by_index(&m->namesp, i, env);
if (namesp && namesp->uri) {
- GUTHTHILA_TOKEN_TO_STRING(namesp->uri, str);
+ GUTHTHILA_TOKEN_TO_STRING(namesp->uri, str, env);
return str;
}
}
#else
guththila_elem_namesp_t *nmsp = NULL;
- if (((guththila_element_t *)guththila_stack_peek(&m->elem))->is_namesp) {
- nmsp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp);
+ if (((guththila_element_t *)guththila_stack_peek(&m->elem, env))->is_namesp) {
+ nmsp = (guththila_elem_namesp_t *)guththila_stack_peek(&m->namesp, env);
if (nmsp && nmsp->no >= i) {
- GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[i - 1].uri, str);
+ GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[i - 1].uri, str, env);
return str;
}
}
@@ -908,7 +918,7 @@
return NULL;
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_namespace_by_number (guththila_t * m, int i)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_attribute_namespace_by_number (guththila_t * m, int i, axutil_env_t *env)
{
#ifndef GUTHTHILA_VALIDATION_PARSER
return NULL;
@@ -918,14 +928,14 @@
int j = 0, k = 0, count = 0;
guththila_elem_namesp_t *nmsp = NULL;
if ( i <= GUTHTHILA_STACK_SIZE(m->attrib)) {
- attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1);
+ attr = (guththila_attr_t *)guththila_stack_get_by_index(&m->attrib, i - 1, env);
if (attr && attr->pref) {
count = GUTHTHILA_STACK_SIZE(m->namesp);
for ( j = 0; j < count; j++) {
- nmsp = (guththila_elem_namesp_t *)guththila_stack_get_by_index(&m->namesp, j);
+ nmsp = (guththila_elem_namesp_t *)guththila_stack_get_by_index(&m->namesp, j, env);
for (k = 0; k < nmsp->no; k++) {
- if (!guththila_tok_tok_cmp(nmsp->namesp[k].name, attr->pref)) {
- GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[k].uri, str);
+ if (!guththila_tok_tok_cmp(nmsp->namesp[k].name, attr->pref, env)) {
+ GUTHTHILA_TOKEN_TO_STRING(nmsp->namesp[k].uri, str, env);
return str;
}
}
@@ -936,12 +946,12 @@
#endif
}
-GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_encoding (guththila_t *m)
+GUTHTHILA_EXPORT guththila_char * GUTHTHILA_CALL guththila_get_encoding (guththila_t *m, axutil_env_t *env)
{
return "UTF-8";
}
-static int GUTHTHILA_CALL guththila_next_char(guththila_t *m, int eof)
+static int GUTHTHILA_CALL guththila_next_char(guththila_t *m, int eof, axutil_env_t *env)
{
int c = -1;
size_t temp = 0, data_move = 0, i = 0;
@@ -957,24 +967,24 @@
} else if (m->next >= GUTHTHILA_BUFFER_PRE_DATA_SIZE(m->buffer) + GUTHTHILA_BUFFER_CURRENT_DATA_SIZE(m->buffer) && m->buffer.cur_buff != -1){
if (m->buffer.cur_buff == m->buffer.no_buffers - 1) {
temp = m->buffer.no_buffers * 2;
- temp1 = (char **)malloc(sizeof(char *) * temp);
- temp2 = (size_t *)malloc(sizeof(size_t) * temp);
- temp3 = (size_t *)malloc(sizeof(size_t) * temp);
+ temp1 = (char **)AXIS2_MALLOC(env->allocator, sizeof(char *) * temp);
+ temp2 = (size_t *)AXIS2_MALLOC(env->allocator, sizeof(size_t) * temp);
+ temp3 = (size_t *)AXIS2_MALLOC(env->allocator, sizeof(size_t) * temp);
for (i = 0; i < m->buffer.no_buffers; i++) {
temp1[i] = m->buffer.buff[i];
temp2[i] = m->buffer.buffs_size[i];
temp3[i] = m->buffer.data_size[i];
}
- free(m->buffer.buff);
- free(m->buffer.data_size);
- free(m->buffer.buffs_size);
+ AXIS2_FREE(env->allocator, m->buffer.buff);
+ AXIS2_FREE(env->allocator, m->buffer.data_size);
+ AXIS2_FREE(env->allocator, m->buffer.buffs_size);
m->buffer.buff = temp1;
m->buffer.buffs_size = temp2;
m->buffer.data_size = temp3;
m->buffer.no_buffers *= 2;
}
m->buffer.cur_buff++;
- m->buffer.buff[m->buffer.cur_buff] = (char *)malloc(sizeof(char) * m->buffer.buffs_size[m->buffer.cur_buff - 1] * 2);
+ m->buffer.buff[m->buffer.cur_buff] = (char *)AXIS2_MALLOC(env->allocator, sizeof(char) * m->buffer.buffs_size[m->buffer.cur_buff - 1] * 2);
m->buffer.buffs_size[m->buffer.cur_buff] = m->buffer.buffs_size[m->buffer.cur_buff - 1] * 2;
m->buffer.data_size[m->buffer.cur_buff] = 0;
@@ -987,7 +997,7 @@
m->buffer.data_size[m->buffer.cur_buff] += data_move;
}
m->buffer.pre_tot_data += m->buffer.data_size[m->buffer.cur_buff - 1];
- temp = guththila_reader_read(m->reader, GUTHTHILA_BUFFER_CURRENT_BUFF(m->buffer), 0, GUTHTHILA_BUFFER_CURRENT_BUFF_SIZE(m->buffer));
+ temp = guththila_reader_read(m->reader, GUTHTHILA_BUFFER_CURRENT_BUFF(m->buffer), 0, GUTHTHILA_BUFFER_CURRENT_BUFF_SIZE(m->buffer), env);
if (temp > 0) {
m->buffer.data_size[m->buffer.cur_buff] += temp;
} else {
@@ -996,10 +1006,10 @@
c = m->buffer.buff[m->buffer.cur_buff][m->next++ - GUTHTHILA_BUFFER_PRE_DATA_SIZE(m->buffer)];
return c >= 0 ? c : -1;
} else if (m->buffer.cur_buff == -1){
- m->buffer.buff[0] = (char *) malloc(sizeof(char) * GUTHTHILA_BUFFER_DEF_SIZE);
+ m->buffer.buff[0] = (char *) AXIS2_MALLOC(env->allocator, sizeof(char) * GUTHTHILA_BUFFER_DEF_SIZE);
m->buffer.buffs_size[0] = GUTHTHILA_BUFFER_DEF_SIZE;
m->buffer.cur_buff = 0;
- temp = guththila_reader_read(m->reader, m->buffer.buff[0], 0, GUTHTHILA_BUFFER_DEF_SIZE);
+ temp = guththila_reader_read(m->reader, m->buffer.buff[0], 0, GUTHTHILA_BUFFER_DEF_SIZE, env);
m->buffer.data_size[0] = temp;
c = m->buffer.buff[0][m->next++];
return c >= 0 ? c : -1;
@@ -1008,7 +1018,7 @@
return -1;
}
-static int GUTHTHILA_CALL guththila_next_no_char (guththila_t *m, int eof, char *bytes, int no)
+static int GUTHTHILA_CALL guththila_next_no_char (guththila_t *m, int eof, char *bytes, int no, axutil_env_t *env)
{
int c = -1, temp = 0, data_move = 0, i = 0;
char **temp1 = NULL;
@@ -1027,23 +1037,23 @@
} else if (m->next >= GUTHTHILA_BUFFER_PRE_DATA_SIZE(m->buffer) + GUTHTHILA_BUFFER_CURRENT_DATA_SIZE(m->buffer) + no && m->buffer.cur_buff != -1){
if (m->buffer.cur_buff == m->buffer.no_buffers - 1) {
temp = m->buffer.no_buffers * 2;
- temp1 = (char **)malloc(sizeof(char *) * temp);
- temp2 = (size_t *)malloc(sizeof(size_t) * temp);
- temp3 = (size_t *)malloc(sizeof(size_t) * temp);
+ temp1 = (char **)AXIS2_MALLOC(env->allocator, sizeof(char *) * temp);
+ temp2 = (size_t *)AXIS2_MALLOC(env->allocator, sizeof(size_t) * temp);
+ temp3 = (size_t *)AXIS2_MALLOC(env->allocator, sizeof(size_t) * temp);
for (i = 0; i < m->buffer.no_buffers; i++) {
temp1[i] = m->buffer.buff[i];
temp2[i] = m->buffer.buffs_size[i];
temp3[i] = m->buffer.data_size[i];
}
- free(m->buffer.buff);
- free(m->buffer.data_size);
- free(m->buffer.buffs_size);
+ AXIS2_FREE(env->allocator, m->buffer.buff);
+ AXIS2_FREE(env->allocator, m->buffer.data_size);
+ AXIS2_FREE(env->allocator, m->buffer.buffs_size);
m->buffer.buff = temp1;
m->buffer.buffs_size = temp2;
m->buffer.data_size = temp3;
m->buffer.no_buffers *= 2;
}
- m->buffer.buff[m->buffer.cur_buff + 1] = (char *)malloc(sizeof(char) * m->buffer.data_size[m->buffer.cur_buff] * 2);
+ m->buffer.buff[m->buffer.cur_buff + 1] = (char *)AXIS2_MALLOC(env->allocator, sizeof(char) * m->buffer.data_size[m->buffer.cur_buff] * 2);
m->buffer.cur_buff++;
m->buffer.buffs_size[m->buffer.cur_buff] = m->buffer.buffs_size[m->buffer.cur_buff - 1] * 2;
m->buffer.data_size[m->buffer.cur_buff] = 0;
@@ -1057,7 +1067,7 @@
m->buffer.data_size[m->buffer.cur_buff] += data_move;
}
m->buffer.pre_tot_data += m->buffer.data_size[m->buffer.cur_buff - 1];
- temp = guththila_reader_read(m->reader, GUTHTHILA_BUFFER_CURRENT_BUFF(m->buffer), 0, GUTHTHILA_BUFFER_CURRENT_BUFF_SIZE(m->buffer));
+ temp = guththila_reader_read(m->reader, GUTHTHILA_BUFFER_CURRENT_BUFF(m->buffer), 0, GUTHTHILA_BUFFER_CURRENT_BUFF_SIZE(m->buffer), env);
if (temp > 0) {
m->buffer.data_size[m->buffer.cur_buff] += temp;
} else {
@@ -1068,10 +1078,10 @@
}
return no;
} else if (m->buffer.cur_buff == -1){
- m->buffer.buff[0] = (char *) malloc(sizeof(char) * GUTHTHILA_BUFFER_DEF_SIZE);
+ m->buffer.buff[0] = (char *) AXIS2_MALLOC(env->allocator, sizeof(char) * GUTHTHILA_BUFFER_DEF_SIZE);
m->buffer.buffs_size[0] = GUTHTHILA_BUFFER_DEF_SIZE;
m->buffer.cur_buff = 0;
- temp = guththila_reader_read(m->reader, m->buffer.buff[0], 0, GUTHTHILA_BUFFER_DEF_SIZE);
+ temp = guththila_reader_read(m->reader, m->buffer.buff[0], 0, GUTHTHILA_BUFFER_DEF_SIZE, env);
m->buffer.data_size[0] = temp;
for (i = 0; i < no; i++){
bytes[i] = m->buffer.buff[m->buffer.cur_buff][m->next++ - GUTHTHILA_BUFFER_PRE_DATA_SIZE(m->buffer)];
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org