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 2005/10/24 11:23:30 UTC

svn commit: r328009 - in /webservices/axis2/trunk/c/modules/xml/guththila/src: Makefile.am Makefile.in guththila_array.c guththila_array.h guththila_string.c guththila_string.h guththila_xml_pull_parser.c guththila_xml_stream_writer.c

Author: samisa
Date: Mon Oct 24 02:23:17 2005
New Revision: 328009

URL: http://svn.apache.org/viewcvs?rev=328009&view=rev
Log:
removed warnings

Modified:
    webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.am
    webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.in
    webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.c
    webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.h
    webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.c
    webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.h
    webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_pull_parser.c
    webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.am?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.am Mon Oct 24 02:23:17 2005
@@ -1,5 +1,5 @@
 lib_LTLIBRARIES = libguththila.la
-AM_CPPFLAGS = $(CPPFLAGS) -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread
+AM_CPPFLAGS = $(CPPFLAGS) 
 libguththila_la_SOURCES = guththila_token.c \
                             guththila_xml_pull_parser.c \
                             guththila_buffer.c \
@@ -7,7 +7,14 @@
                             guththila_stack.c \
                             guththila_unicode.c \
                             guththila_main.c \
-                            guththila_reader.c
+                            guththila_reader.c \
+                            guththila_allocator.c \
+                            guththila_array.c \
+                            guththila_string.c \
+                            guththila_stream.c \
+                            guththila_environment.c \
+                            guththila_log.c \
+                            guththila_error.c 
 
 libguththila_la_LIBADD = $(LDFLAGS)
-INCLUDES = -I$(top_builddir)/include -I${CUTEST_HOME}/include -I${APR_HOME}/include/apr-1
+INCLUDES = -I$(top_builddir)/include -I${CUTEST_HOME}/include 

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.in
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.in?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/Makefile.in Mon Oct 24 02:23:17 2005
@@ -66,7 +66,10 @@
 am_libguththila_la_OBJECTS = guththila_token.lo \
 	guththila_xml_pull_parser.lo guththila_buffer.lo \
 	guththila_xml_stream_writer.lo guththila_stack.lo \
-	guththila_unicode.lo guththila_main.lo guththila_reader.lo
+	guththila_unicode.lo guththila_main.lo guththila_reader.lo \
+	guththila_allocator.lo guththila_array.lo guththila_string.lo \
+	guththila_stream.lo guththila_environment.lo guththila_log.lo \
+	guththila_error.lo
 libguththila_la_OBJECTS = $(am_libguththila_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/conftools/depcomp
@@ -193,7 +196,7 @@
 target_os = @target_os@
 target_vendor = @target_vendor@
 lib_LTLIBRARIES = libguththila.la
-AM_CPPFLAGS = $(CPPFLAGS) -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread
+AM_CPPFLAGS = $(CPPFLAGS) 
 libguththila_la_SOURCES = guththila_token.c \
                             guththila_xml_pull_parser.c \
                             guththila_buffer.c \
@@ -201,10 +204,17 @@
                             guththila_stack.c \
                             guththila_unicode.c \
                             guththila_main.c \
-                            guththila_reader.c
+                            guththila_reader.c \
+                            guththila_allocator.c \
+                            guththila_array.c \
+                            guththila_string.c \
+                            guththila_stream.c \
+                            guththila_environment.c \
+                            guththila_log.c \
+                            guththila_error.c 
 
 libguththila_la_LIBADD = $(LDFLAGS)
-INCLUDES = -I$(top_builddir)/include -I${CUTEST_HOME}/include -I${APR_HOME}/include/apr-1
+INCLUDES = -I$(top_builddir)/include -I${CUTEST_HOME}/include 
 all: all-am
 
 .SUFFIXES:
@@ -274,10 +284,17 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_allocator.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_array.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_buffer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_environment.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_error.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_log.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_main.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_reader.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_stack.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_stream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_string.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_token.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_unicode.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guththila_xml_pull_parser.Plo@am__quote@

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.c?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.c (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.c Mon Oct 24 02:23:17 2005
@@ -97,7 +97,7 @@
     ++arr->nelts;
     return arr->elts + (arr->elt_size * (arr->nelts - 1));
 }
-
+/*
 static void *guththila_array_push_noclear(guththila_array_header_t *arr)
 {
     if (arr->nelts == arr->nalloc) {
@@ -114,7 +114,7 @@
     ++arr->nelts;
     return arr->elts + (arr->elt_size * (arr->nelts - 1));
 }
-
+*/
 void guththila_array_cat(guththila_array_header_t *dst,
 			       const guththila_array_header_t *src)
 {
@@ -256,864 +256,3 @@
     return res;
 }
 
-
-/*****************************************************************
- *
- * The "table" functions.
- */
-
-#if GUTHTHILA_CHARSET_EBCDIC
-#define CASE_MASK 0xbfbfbfbf
-#else
-#define CASE_MASK 0xdfdfdfdf
-#endif
-
-#define TABLE_HASH_SIZE 32
-#define TABLE_INDEX_MASK 0x1f
-#define TABLE_HASH(key)  (TABLE_INDEX_MASK & *(guththila_unsigned_char_t *)(key))
-#define TABLE_INDEX_IS_INITIALIZED(t, i) ((t)->index_initialized & (1 << (i)))
-#define TABLE_SET_INDEX_INITIALIZED(t, i) ((t)->index_initialized |= (1 << (i)))
-
-/* Compute the "checksum" for a key, consisting of the first
- * 4 bytes, normalized for case-insensitivity and packed into
- * an int...this checksum allows us to do a single integer
- * comparison as a fast check to determine whether we can
- * skip a strcasecmp
- */
-#define COMPUTE_KEY_CHECKSUM(key, checksum)    \
-{                                              \
-    const guththila_char_t *k = (key);                     \
-    guththila_ssize_t c = (guththila_ssize_t)*k;         \
-    (checksum) = c;                            \
-    (checksum) <<= 8;                          \
-    if (c) {                                   \
-        c = (guththila_ssize_t)*++k;                \
-        checksum |= c;                         \
-    }                                          \
-    (checksum) <<= 8;                          \
-    if (c) {                                   \
-        c = (guththila_ssize_t)*++k;                \
-        checksum |= c;                         \
-    }                                          \
-    (checksum) <<= 8;                          \
-    if (c) {                                   \
-        c = (guththila_ssize_t)*++k;                \
-        checksum |= c;                         \
-    }                                          \
-    checksum &= CASE_MASK;                     \
-}
-
-/** The opaque string-content table type */
-struct guththila_table_t {
-    /* This has to be first to promote backwards compatibility with
-     * older modules which cast a guththila_table_t * to an guththila_array_header_t *...
-     * they should use the guththila_table_elts() function for most of the
-     * cases they do this for.
-     */
-    /** The underlying array for the table */
-    guththila_array_header_t a;
-#ifdef MAKE_TABLE_PROFILE
-    /** Who created the array. */
-    void *creator;
-#endif
-    /* An index to speed up table lookups.  The way this works is:
-     *   - Hash the key into the index:
-     *     - index_first[TABLE_HASH(key)] is the offset within
-     *       the table of the first entry with that key
-     *     - index_last[TABLE_HASH(key)] is the offset within
-     *       the table of the last entry with that key
-     *   - If (and only if) there is no entry in the table whose
-     *     key hashes to index element i, then the i'th bit
-     *     of index_initialized will be zero.  (Check this before
-     *     trying to use index_first[i] or index_last[i]!)
-     */
-    guththila_ssize_t index_initialized;
-    int index_first[TABLE_HASH_SIZE];
-    int index_last[TABLE_HASH_SIZE];
-};
-
-/*
- * NOTICE: if you tweak this you should look at is_empty_table() 
- * and table_elts() in alloc.h
- */
-#ifdef MAKE_TABLE_PROFILE
-static guththila_table_entry_t *table_push(guththila_table_t *t)
-{
-    if (t->a.nelts == t->a.nalloc) {
-        return NULL;
-    }
-    return (guththila_table_entry_t *) guththila_array_push_noclear(&t->a);
-}
-#else /* MAKE_TABLE_PROFILE */
-#define table_push(t)	((guththila_table_entry_t *) guththila_array_push_noclear(&(t)->a))
-#endif /* MAKE_TABLE_PROFILE */
-
-const guththila_array_header_t * guththila_table_elts(const guththila_table_t *t)
-{
-    return (const guththila_array_header_t *)t;
-}
-
-int guththila_is_empty_table(const guththila_table_t *t)
-{
-    return ((t == NULL) || (t->a.nelts == 0));
-}
-
-guththila_table_t * guththila_table_make(guththila_environment_t *environment, int nelts)
-{
-    guththila_table_t *t = guththila_malloc(environment->allocator, sizeof(guththila_table_t));
-
-    make_array_core(&t->a,environment, nelts, sizeof(guththila_table_entry_t), 0);
-#ifdef MAKE_TABLE_PROFILE
-    t->creator = __builtin_return_address(0);
-#endif
-    t->index_initialized = 0;
-    return t;
-}
-
-guththila_table_t * guththila_table_copy(guththila_environment_t *environment, const guththila_table_t *t)
-{
-    guththila_table_t *new = guththila_malloc(environment->allocator, sizeof(guththila_table_t));
-
-
-    make_array_core(&new->a, environment, t->a.nalloc, sizeof(guththila_table_entry_t), 0);
-    memcpy(new->a.elts, t->a.elts, t->a.nelts * sizeof(guththila_table_entry_t));
-    new->a.nelts = t->a.nelts;
-    memcpy(new->index_first, t->index_first, sizeof(int) * TABLE_HASH_SIZE);
-    memcpy(new->index_last, t->index_last, sizeof(int) * TABLE_HASH_SIZE);
-    new->index_initialized = t->index_initialized;
-    return new;
-}
-
-static void table_reindex(guththila_table_t *t)
-{
-    int i;
-    int hash;
-    guththila_table_entry_t *next_elt = (guththila_table_entry_t *) t->a.elts;
-
-    t->index_initialized = 0;
-    for (i = 0; i < t->a.nelts; i++, next_elt++) {
-        hash = TABLE_HASH(next_elt->key);
-        t->index_last[hash] = i;
-        if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-            t->index_first[hash] = i;
-            TABLE_SET_INDEX_INITIALIZED(t, hash);
-        }
-    }
-}
-
-void guththila_table_clear(guththila_table_t *t)
-{
-    t->a.nelts = 0;
-    t->index_initialized = 0;
-}
-
-const guththila_char_t * guththila_table_get(const guththila_table_t *t, const guththila_char_t *key)
-{
-    guththila_table_entry_t *next_elt;
-    guththila_table_entry_t *end_elt;
-    guththila_ssize_t checksum;
-    int hash;
-
-    if (key == NULL) {
-	return NULL;
-    }
-
-    hash = TABLE_HASH(key);
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        return NULL;
-    }
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    next_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_first[hash];;
-    end_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_last[hash];
-
-    for (; next_elt <= end_elt; next_elt++) {
-	if ((checksum == next_elt->key_checksum) &&
-            !stricmp(next_elt->key, key)) {
-	    return next_elt->val;
-	}
-    }
-
-    return NULL;
-}
-
-void guththila_table_set(guththila_table_t *t, const guththila_char_t *key,
-                                const guththila_char_t *val)
-{
-    guththila_table_entry_t *next_elt;
-    guththila_table_entry_t *end_elt;
-    guththila_table_entry_t *table_end;
-    guththila_ssize_t checksum;
-    int hash;
-
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    hash = TABLE_HASH(key);
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        t->index_first[hash] = t->a.nelts;
-        TABLE_SET_INDEX_INITIALIZED(t, hash);
-        goto add_new_elt;
-    }
-    next_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_first[hash];;
-    end_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_last[hash];
-    table_end =((guththila_table_entry_t *) t->a.elts) + t->a.nelts;
-
-    for (; next_elt <= end_elt; next_elt++) {
-	if ((checksum == next_elt->key_checksum) &&
-            !stricmp(next_elt->key, key)) {
-
-            
-            /* Found an existing entry with the same key, so overwrite it */
-
-            int must_reindex = 0;
-            guththila_table_entry_t *dst_elt = NULL;
-
-            next_elt->val = guththila_strdup(t->a.environment->string, val);
-
-            /* Remove any other instances of this key */
-            for (next_elt++; next_elt <= end_elt; next_elt++) {
-                if ((checksum == next_elt->key_checksum) &&
-                    !stricmp(next_elt->key, key)) {
-                    t->a.nelts--;
-                    if (!dst_elt) {
-                        dst_elt = next_elt;
-                    }
-                }
-                else if (dst_elt) {
-                    *dst_elt++ = *next_elt;
-                    must_reindex = 1;
-                }
-            }
-
-            /* If we've removed anything, shift over the remainder
-             * of the table (note that the previous loop didn't
-             * run to the end of the table, just to the last match
-             * for the index)
-             */
-            if (dst_elt) {
-                for (; next_elt < table_end; next_elt++) {
-                    *dst_elt++ = *next_elt;
-                }
-                must_reindex = 1;
-            }
-            if (must_reindex) {
-                table_reindex(t);
-            }
-            return;
-        }
-    }
-
-add_new_elt:
-    t->index_last[hash] = t->a.nelts;
-    next_elt = (guththila_table_entry_t *) table_push(t);
-    next_elt->key = guththila_strdup(t->a.environment->string, key);
-    next_elt->val = guththila_strdup(t->a.environment->string, val);
-    next_elt->key_checksum = checksum;
-}
-
-void guththila_table_setn(guththila_table_t *t, const guththila_char_t *key,
-                                 const guththila_char_t *val)
-{
-    guththila_table_entry_t *next_elt;
-    guththila_table_entry_t *end_elt;
-    guththila_table_entry_t *table_end;
-    guththila_ssize_t checksum;
-    int hash;
-
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    hash = TABLE_HASH(key);
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        t->index_first[hash] = t->a.nelts;
-        TABLE_SET_INDEX_INITIALIZED(t, hash);
-        goto add_new_elt;
-    }
-    next_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_first[hash];;
-    end_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_last[hash];
-    table_end =((guththila_table_entry_t *) t->a.elts) + t->a.nelts;
-
-    for (; next_elt <= end_elt; next_elt++) {
-	if ((checksum == next_elt->key_checksum) &&
-            !stricmp(next_elt->key, key)) {
-
-            /* Found an existing entry with the same key, so overwrite it */
-
-            int must_reindex = 0;
-            guththila_table_entry_t *dst_elt = NULL;
-
-            next_elt->val = (guththila_char_t *)val;
-
-            /* Remove any other instances of this key */
-            for (next_elt++; next_elt <= end_elt; next_elt++) {
-                if ((checksum == next_elt->key_checksum) &&
-                    !stricmp(next_elt->key, key)) {
-                    t->a.nelts--;
-                    if (!dst_elt) {
-                        dst_elt = next_elt;
-                    }
-                }
-                else if (dst_elt) {
-                    *dst_elt++ = *next_elt;
-                    must_reindex = 1;
-                }
-            }
-
-            /* If we've removed anything, shift over the remainder
-             * of the table (note that the previous loop didn't
-             * run to the end of the table, just to the last match
-             * for the index)
-             */
-            if (dst_elt) {
-                for (; next_elt < table_end; next_elt++) {
-                    *dst_elt++ = *next_elt;
-                }
-                must_reindex = 1;
-            }
-            if (must_reindex) {
-                table_reindex(t);
-            }
-            return;
-        }
-    }
-
-add_new_elt:
-    t->index_last[hash] = t->a.nelts;
-    next_elt = (guththila_table_entry_t *) table_push(t);
-    next_elt->key = (guththila_char_t *)key;
-    next_elt->val = (guththila_char_t *)val;
-    next_elt->key_checksum = checksum;
-}
-
-void guththila_table_unset(guththila_table_t *t, const guththila_char_t *key)
-{
-    guththila_table_entry_t *next_elt;
-    guththila_table_entry_t *end_elt;
-    guththila_table_entry_t *dst_elt;
-    guththila_ssize_t checksum;
-    int hash;
-    int must_reindex;
-
-    hash = TABLE_HASH(key);
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        return;
-    }
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    next_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_first[hash];
-    end_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_last[hash];
-    must_reindex = 0;
-    for (; next_elt <= end_elt; next_elt++) {
-	if ((checksum == next_elt->key_checksum) &&
-            !stricmp(next_elt->key, key)) {
-
-            /* Found a match: remove this entry, plus any additional
-             * matches for the same key that might follow
-             */
-            guththila_table_entry_t *table_end = ((guththila_table_entry_t *) t->a.elts) +
-                t->a.nelts;
-            t->a.nelts--;
-            dst_elt = next_elt;
-            for (next_elt++; next_elt <= end_elt; next_elt++) {
-                if ((checksum == next_elt->key_checksum) &&
-                    !stricmp(next_elt->key, key)) {
-                    t->a.nelts--;
-                }
-                else {
-                    *dst_elt++ = *next_elt;
-                }
-            }
-
-            /* Shift over the remainder of the table (note that
-             * the previous loop didn't run to the end of the table,
-             * just to the last match for the index)
-             */
-            for (; next_elt < table_end; next_elt++) {
-                *dst_elt++ = *next_elt;
-            }
-            must_reindex = 1;
-            break;
-        }
-    }
-    if (must_reindex) {
-        table_reindex(t);
-    }
-}
-/*
-void guththila_table_merge(guththila_table_t *t, const guththila_char_t *key,
-				 const guththila_char_t *val)
-{
-    guththila_table_entry_t *next_elt;
-    guththila_table_entry_t *end_elt;
-    guththila_uint32_t checksum;
-    int hash;
-
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    hash = TABLE_HASH(key);
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        t->index_first[hash] = t->a.nelts;
-        TABLE_SET_INDEX_INITIALIZED(t, hash);
-        goto add_new_elt;
-    }
-    next_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_first[hash];
-    end_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_last[hash];
-
-    for (; next_elt <= end_elt; next_elt++) {
-	if ((checksum == next_elt->key_checksum) &&
-            !strcasecmp(next_elt->key, key)) {
-
-            /* Found an existing entry with the same key, so merge with it 
-	    next_elt->val = guththila_pstrcat(t->a.pool, next_elt->val, ", ",
-                                        val, NULL);
-            return;
-        }
-        
-    }
-
-add_new_elt:
-    t->index_last[hash] = t->a.nelts;
-    next_elt = (guththila_table_entry_t *) table_push(t);
-    next_elt->key = guththila_pstrdup(t->a.pool, key);
-    next_elt->val = guththila_pstrdup(t->a.pool, val);
-    next_elt->key_checksum = checksum;
-}
-
-void) guththila_table_mergen(guththila_table_t *t, const guththila_char_t *key,
-				  const guththila_char_t *val)
-{
-    guththila_table_entry_t *next_elt;
-    guththila_table_entry_t *end_elt;
-    guththila_uint32_t checksum;
-    int hash;
-
-#if GUTHTHILA_POOL_DEBUG
-    {
-	if (!guththila_pool_is_ancestor(guththila_pool_find(key), t->a.pool)) {
-	    fprintf(stderr, "guththila_table_mergen: key not in ancestor pool of t\n");
-	    abort();
-	}
-	if (!guththila_pool_is_ancestor(guththila_pool_find(val), t->a.pool)) {
-	    fprintf(stderr, "guththila_table_mergen: key not in ancestor pool of t\n");
-	    abort();
-	}
-    }
-#endif
-
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    hash = TABLE_HASH(key);
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        t->index_first[hash] = t->a.nelts;
-        TABLE_SET_INDEX_INITIALIZED(t, hash);
-        goto add_new_elt;
-    }
-    next_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_first[hash];;
-    end_elt = ((guththila_table_entry_t *) t->a.elts) + t->index_last[hash];
-
-    for (; next_elt <= end_elt; next_elt++) {
-	if ((checksum == next_elt->key_checksum) &&
-            !strcasecmp(next_elt->key, key)) {
-
-            /* Found an existing entry with the same key, so merge with it 
-	    next_elt->val = guththila_pstrcat(t->a.pool, next_elt->val, ", ",
-                                        val, NULL);
-            return;
-        }
-    }
-
-add_new_elt:
-    t->index_last[hash] = t->a.nelts;
-    next_elt = (guththila_table_entry_t *) table_push(t);
-    next_elt->key = (guththila_char_t *)key;
-    next_elt->val = (guththila_char_t *)val;
-    next_elt->key_checksum = checksum;
-}
-*/
-void guththila_table_add(guththila_table_t *t, const guththila_char_t *key,
-			       const guththila_char_t *val)
-{
-    guththila_table_entry_t *elts;
-    guththila_ssize_t checksum;
-    int hash;
-
-    hash = TABLE_HASH(key);
-    t->index_last[hash] = t->a.nelts;
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        t->index_first[hash] = t->a.nelts;
-        TABLE_SET_INDEX_INITIALIZED(t, hash);
-    }
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    elts = (guththila_table_entry_t *) table_push(t);
-    elts->key = guththila_strdup(t->a.environment->string, key);
-    elts->val = guththila_strdup(t->a.environment->string, val);
-    elts->key_checksum = checksum;
-}
-
-void guththila_table_addn(guththila_table_t *t, const guththila_char_t *key,
-				const guththila_char_t *val)
-{
-    guththila_table_entry_t *elts;
-    guththila_ssize_t checksum;
-    int hash;
-
-
-
-    hash = TABLE_HASH(key);
-    t->index_last[hash] = t->a.nelts;
-    if (!TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-        t->index_first[hash] = t->a.nelts;
-        TABLE_SET_INDEX_INITIALIZED(t, hash);
-    }
-    COMPUTE_KEY_CHECKSUM(key, checksum);
-    elts = (guththila_table_entry_t *) table_push(t);
-    elts->key = (guththila_char_t *)key;
-    elts->val = (guththila_char_t *)val;
-    elts->key_checksum = checksum;
-}
-
-guththila_table_t * guththila_table_overlay(guththila_environment_t *environment,
-					     const guththila_table_t *overlay,
-					     const guththila_table_t *base)
-{
-    guththila_table_t *res;
-
-
-    res = guththila_malloc(environment->allocator, sizeof(guththila_table_t));
-    /* behave like append_arrays */
-    res->a.environment = environment;
-    copy_array_hdr_core(&res->a, &overlay->a);
-    guththila_array_cat(&res->a, &base->a);
-    table_reindex(res);
-    return res;
-}
-
-/* And now for something completely abstract ...
-
- * For each key value given as a vararg:
- *   run the function pointed to as
- *     int comp(void *r, char *key, char *value);
- *   on each valid key-value pair in the guththila_table_t t that matches the vararg key,
- *   or once for every valid key-value pair if the vararg list is empty,
- *   until the function returns false (0) or we finish the table.
- *
- * Note that we restart the traversal for each vararg, which means that
- * duplicate varargs will result in multiple executions of the function
- * for each matching key.  Note also that if the vararg list is empty,
- * only one traversal will be made and will cut short if comp returns 0.
- *
- * Note that the table_get and table_merge functions assume that each key in
- * the guththila_table_t is unique (i.e., no multiple entries with the same key).  This
- * function does not make that assumption, since it (unfortunately) isn't
- * true for some of Apache's tables.
- *
- * Note that rec is simply passed-on to the comp function, so that the
- * caller can pass additional info for the task.
- *
- * ADDENDUM for guththila_table_vdo():
- * 
- * The caching api will allow a user to walk the header values:
- *
- * guththila_status_t guththila_cache_el_header_walk(guththila_cache_el *el, 
- *    int (*comp)(void *, const char *, const char *), void *rec, ...);
- *
- * So it can be ..., however from there I use a  callback that use a va_list:
- *
- * guththila_status_t (*cache_el_header_walk)(guththila_cache_el *el, 
- *    int (*comp)(void *, const char *, const char *), void *rec, va_list);
- *
- * To pass those ...'s on down to the actual module that will handle walking
- * their headers, in the file case this is actually just an guththila_table - and
- * rather than reimplementing guththila_table_do (which IMHO would be bad) I just
- * called it with the va_list. For mod_shmem_cache I don't need it since I
- * can't use guththila_table's, but mod_file_cache should (though a good hash would
- * be better, but that's a different issue :). 
- *
- * So to make mod_file_cache easier to maintain, it's a good thing
- */
-int guththila_table_do(guththila_table_do_callback_fn_t *comp,
-                                     void *rec, const guththila_table_t *t, ...)
-{
-    int rv;
-
-    va_list vp;
-    va_start(vp, t);
-    rv = guththila_table_vdo(comp, rec, t, vp);
-    va_end(vp);
-
-    return rv;
-}
-
-int guththila_table_vdo(guththila_table_do_callback_fn_t *comp,
-                               void *rec, const guththila_table_t *t, va_list vp)
-{
-    guththila_char_t *argp;
-    guththila_table_entry_t *elts = (guththila_table_entry_t *) t->a.elts;
-    int vdorv = 1;
-
-    argp = va_arg(vp, guththila_char_t *);
-    do {
-        int rv = 1, i;
-        if (argp) {
-            /* Scan for entries that match the next key */
-            int hash = TABLE_HASH(argp);
-            if (TABLE_INDEX_IS_INITIALIZED(t, hash)) {
-                guththila_ssize_t checksum;
-                COMPUTE_KEY_CHECKSUM(argp, checksum);
-                for (i = t->index_first[hash];
-                     rv && (i <= t->index_last[hash]); ++i) {
-                    if (elts[i].key && (checksum == elts[i].key_checksum) &&
-                                        !stricmp(elts[i].key, argp)) {
-                        rv = (*comp) (rec, elts[i].key, elts[i].val);
-                    }
-                }
-            }
-        }
-        else {
-            /* Scan the entire table */
-            for (i = 0; rv && (i < t->a.nelts); ++i) {
-                if (elts[i].key) {
-                    rv = (*comp) (rec, elts[i].key, elts[i].val);
-                }
-            }
-        }
-        if (rv == 0) {
-            vdorv = 0;
-        }
-    } while (argp && ((argp = va_arg(vp, guththila_char_t *)) != NULL));
-
-    return vdorv;
-}
-
-static guththila_table_entry_t **table_mergesort(guththila_environment_t *environment,
-                                           guththila_table_entry_t **values, int n)
-{
-    /* Bottom-up mergesort, based on design in Sedgewick's "Algorithms
-     * in C," chapter 8
-     */
-    guththila_table_entry_t **values_tmp =
-        (guththila_table_entry_t **)guththila_malloc(environment->allocator, n * sizeof(guththila_table_entry_t*));
-    guththila_ssize_t i;
-    int blocksize;
-
-    /* First pass: sort pairs of elements (blocksize=1) */
-    for (i = 0; i + 1 < n; i += 2) {
-        if (stricmp(values[i]->key, values[i + 1]->key) > 0) {
-            guththila_table_entry_t *swap = values[i];
-            values[i] = values[i + 1];
-            values[i + 1] = swap;
-        }
-    }
-
-    /* Merge successively larger blocks */
-    blocksize = 2;
-    while (blocksize < n) {
-        guththila_table_entry_t **dst = values_tmp;
-        int next_start;
-        guththila_table_entry_t **swap;
-
-        /* Merge consecutive pairs blocks of the next blocksize.
-         * Within a block, elements are in sorted order due to
-         * the previous iteration.
-         */
-        for (next_start = 0; next_start + blocksize < n;
-             next_start += (blocksize + blocksize)) {
-
-            int block1_start = next_start;
-            int block2_start = block1_start + blocksize;
-            int block1_end = block2_start;
-            int block2_end = block2_start + blocksize;
-            if (block2_end > n) {
-                /* The last block may be smaller than blocksize */
-                block2_end = n;
-            }
-            for (;;) {
-
-                /* Merge the next two blocks:
-                 * Pick the smaller of the next element from
-                 * block 1 and the next element from block 2.
-                 * Once either of the blocks is emptied, copy
-                 * over all the remaining elements from the
-                 * other block
-                 */
-                if (block1_start == block1_end) {
-                    for (; block2_start < block2_end; block2_start++) {
-                        *dst++ = values[block2_start];
-                    }
-                    break;
-                }
-                else if (block2_start == block2_end) {
-                    for (; block1_start < block1_end; block1_start++) {
-                        *dst++ = values[block1_start];
-                    }
-                    break;
-                }
-                if (stricmp(values[block1_start]->key,
-                               values[block2_start]->key) > 0) {
-                    *dst++ = values[block2_start++];
-                }
-                else {
-                    *dst++ = values[block1_start++];
-                }
-            }
-        }
-
-        /* If n is not a multiple of 2*blocksize, some elements
-         * will be left over at the end of the array.
-         */
-        for (i = dst - values_tmp; i < n; i++) {
-            values_tmp[i] = values[i];
-        }
-
-        /* The output array of this pass becomes the input
-         * array of the next pass, and vice versa
-         */
-        swap = values_tmp;
-        values_tmp = values;
-        values = swap;
-
-        blocksize += blocksize;
-    }
-
-    return values;
-}
-
-void guththila_table_compress(guththila_table_t *t, unsigned flags)
-{
-    guththila_table_entry_t **sort_array;
-    guththila_table_entry_t **sort_next;
-    guththila_table_entry_t **sort_end;
-    guththila_table_entry_t *table_next;
-    guththila_table_entry_t **last;
-    int i;
-    int dups_found;
-
-    if (t->a.nelts <= 1) {
-        return;
-    }
-
-    /* Copy pointers to all the table elements into an
-     * array and sort to allow for easy detection of
-     * duplicate keys
-     */
-    sort_array = (guththila_table_entry_t **)
-        guththila_malloc(t->a.environment->allocator, t->a.nelts * sizeof(guththila_table_entry_t*));
-    sort_next = sort_array;
-    table_next = (guththila_table_entry_t *)t->a.elts;
-    i = t->a.nelts;
-    do {
-        *sort_next++ = table_next++;
-    } while (--i);
-
-    /* Note: the merge is done with mergesort instead of quicksort
-     * because mergesort is a stable sort and runs in n*log(n)
-     * time regardless of its inputs (quicksort is quadratic in
-     * the worst case)
-     */
-    sort_array = table_mergesort(t->a.environment, sort_array, t->a.nelts);
-
-    /* Process any duplicate keys */
-    dups_found = 0;
-    sort_next = sort_array;
-    sort_end = sort_array + t->a.nelts;
-    last = sort_next++;
-    while (sort_next < sort_end) {
-        if (((*sort_next)->key_checksum == (*last)->key_checksum) &&
-            !stricmp((*sort_next)->key, (*last)->key)) {
-            guththila_table_entry_t **dup_last = sort_next + 1;
-            dups_found = 1;
-            while ((dup_last < sort_end) &&
-                   ((*dup_last)->key_checksum == (*last)->key_checksum) &&
-                   !stricmp((*dup_last)->key, (*last)->key)) {
-                dup_last++;
-            }
-            dup_last--; /* Elements from last through dup_last, inclusive,
-                         * all have the same key
-                         */
-            if (flags == GUTHTHILA_OVERLAP_TABLES_MERGE) {
-                guththila_ssize_t len = 0;
-                guththila_table_entry_t **next = last;
-                guththila_char_t *new_val;
-                guththila_char_t *val_dst;
-                do {
-                    len += strlen((*next)->val);
-                    len += 2; /* for ", " or trailing null */
-                } while (++next <= dup_last);
-                new_val = (guththila_char_t *)guththila_malloc(t->a.environment->allocator, len);
-                val_dst = new_val;
-                next = last;
-                for (;;) {
-                    strcpy(val_dst, (*next)->val);
-                    val_dst += strlen((*next)->val);
-                    next++;
-                    if (next > dup_last) {
-                        *val_dst = 0;
-                        break;
-                    }
-                    else {
-                        *val_dst++ = ',';
-                        *val_dst++ = ' ';
-                    }
-                }
-                (*last)->val = new_val;
-            }
-            else { /* overwrite */
-                (*last)->val = (*dup_last)->val;
-            }
-            do {
-                (*sort_next)->key = NULL;
-            } while (++sort_next <= dup_last);
-        }
-        else {
-            last = sort_next++;
-        }
-    }
-
-    /* Shift elements to the left to fill holes left by removing duplicates */
-    if (dups_found) {
-        guththila_table_entry_t *src = (guththila_table_entry_t *)t->a.elts;
-        guththila_table_entry_t *dst = (guththila_table_entry_t *)t->a.elts;
-        guththila_table_entry_t *last_elt = src + t->a.nelts;
-        do {
-            if (src->key) {
-                *dst++ = *src;
-            }
-        } while (++src < last_elt);
-        t->a.nelts -= (int)(last_elt - dst);
-    }
-
-    table_reindex(t);
-}
-
-static void guththila_table_cat(guththila_table_t *t, const guththila_table_t *s)
-{
-    const int n = t->a.nelts;
-    register int idx;
-
-    guththila_array_cat(&t->a,&s->a);
-
-    if (n == 0) {
-        memcpy(t->index_first,s->index_first,sizeof(int) * TABLE_HASH_SIZE);
-        memcpy(t->index_last, s->index_last, sizeof(int) * TABLE_HASH_SIZE);
-        t->index_initialized = s->index_initialized;
-        return;
-    }
-
-    for (idx = 0; idx < TABLE_HASH_SIZE; ++idx) {
-        if (TABLE_INDEX_IS_INITIALIZED(s, idx)) {
-            t->index_last[idx] = s->index_last[idx] + n;
-            if (!TABLE_INDEX_IS_INITIALIZED(t, idx)) {
-                t->index_first[idx] = s->index_first[idx] + n;
-            }
-        }
-    }
-
-    t->index_initialized |= s->index_initialized;
-}
-
-void guththila_table_overlap(guththila_table_t *a, const guththila_table_t *b,
-				    unsigned flags)
-{
-    if (a->a.nelts + b->a.nelts == 0) {
-        return;
-    }
-
-
-
-    guththila_table_cat(a, b);
-
-    guththila_table_compress(a, flags);
-}

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.h?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.h (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_array.h Mon Oct 24 02:23:17 2005
@@ -43,8 +43,6 @@
  * @{
  */
 
-/** the table abstract data type */
-typedef struct guththila_table_t guththila_table_t;
 
 /** @see guththila_array_header_t */
 typedef struct guththila_array_header_t guththila_array_header_t;
@@ -63,36 +61,6 @@
     guththila_char_t *elts;
 };
 
-/**
- * The (opaque) structure for string-content tables.
- */
-typedef struct guththila_table_entry_t guththila_table_entry_t;
-
-/** The type for each entry in a string-content table */
-struct guththila_table_entry_t {
-    /** The key for the current table entry */
-    guththila_char_t *key;          
-   
-   /** The value for the current table entry */
-    guththila_char_t *val;
-
-    /** A checksum for the key, for use by the guththila_table internals */
-    guththila_ssize_t key_checksum;
-};
-
-/**
- * Get the elements from a table
- * @param t The table
- * @return An array containing the contents of the table
- */
-const guththila_array_header_t * guththila_table_elts(const guththila_table_t *t);
-
-/**
- * Determine if the table is empty
- * @param t The table to check
- * @return True if empty, False otherwise
- */
-int guththila_is_empty_table(const guththila_table_t *t);
 
 /**
  * Determine if the array is empty
@@ -185,233 +153,6 @@
 				      const guththila_array_header_t *arr,
 				      const guththila_char_t sep);
 
-/**
- * Make a new table
- * @param environment guththila_environment
- * @param nelts The number of elements in the initial table.
- * @return The new table.
- * @warning This table can only store text data
- */
-guththila_table_t * guththila_table_make(guththila_environment_t *environment, int nelts);
-
-/**
- * Create a new table and copy another table into it
- * @param environment guththila_environment
- * @param t The table to copy
- * @return A copy of the table passed in
- */
-guththila_table_t * guththila_table_copy(guththila_environment_t *environment,
-                                          const guththila_table_t *t);
-
-/**
- * Delete all of the elements from a table
- * @param t The table to clear
- */
-void guththila_table_clear(guththila_table_t *t);
-
-/**
- * Get the value associated with a given key from the table.  After this call,
- * The data is still in the table
- * @param t The table to search for the key
- * @param key The key to search for
- * @return The value associated with the key, or NULL if the key does not exist. 
- */
-const guththila_char_t * guththila_table_get(const guththila_table_t *t, const guththila_char_t *key);
-
-/**
- * Add a key/value pair to a table, if another element already exists with the
- * same key, this will over-write the old data.
- * @param t The table to add the data to.
- * @param key The key fo use
- * @param val The value to add
- * @remark When adding data, this function makes a copy of both the key and the
- *         value.
- */
-void guththila_table_set(guththila_table_t *t, const guththila_char_t *key,
-                                const guththila_char_t *val);
-
-/**
- * Add a key/value pair to a table, if another element already exists with the
- * same key, this will over-write the old data.
- * @param t The table to add the data to.
- * @param key The key to use
- * @param val The value to add
- * @warning When adding data, this function does not make a copy of the key or 
- *          the value, so care should be taken to ensure that the values will 
- *          not change after they have been added..
- */
-void guththila_table_setn(guththila_table_t *t, const guththila_char_t *key,
-                                 const guththila_char_t *val);
-
-/**
- * Remove data from the table
- * @param t The table to remove data from
- * @param key The key of the data being removed
- */
-void guththila_table_unset(guththila_table_t *t, const guththila_char_t *key);
-
-/**
- * Add data to a table by merging the value with data that has already been 
- * stored
- * @param t The table to search for the data
- * @param key The key to merge data for
- * @param val The data to add
- * @remark If the key is not found, then this function acts like guththila_table_add
- */
-void guththila_table_merge(guththila_table_t *t, const guththila_char_t *key,
-                                  const guththila_char_t *val);
-
-/**
- * Add data to a table by merging the value with data that has already been 
- * stored
- * @param t The table to search for the data
- * @param key The key to merge data for
- * @param val The data to add
- * @remark If the key is not found, then this function acts like guththila_table_addn
- */
-void guththila_table_mergen(guththila_table_t *t, const guththila_char_t *key,
-                                   const guththila_char_t *val);
-
-/**
- * Add data to a table, regardless of whether there is another element with the
- * same key.
- * @param t The table to add to
- * @param key The key to use
- * @param val The value to add.
- * @remark When adding data, this function makes a copy of both the key and the
- *         value.
- */
-void guththila_table_add(guththila_table_t *t, const guththila_char_t *key,
-                                const guththila_char_t *val);
-
-/**
- * Add data to a table, regardless of whether there is another element with the
- * same key.
- * @param t The table to add to
- * @param key The key to use
- * @param val The value to add.
- * @remark When adding data, this function does not make a copy of the key or the
- *         value, so care should be taken to ensure that the values will not 
- *         change after they have been added..
- */
-void guththila_table_addn(guththila_table_t *t, const guththila_char_t *key,
-                                 const guththila_char_t *val);
-
-/**
- * Merge two tables into one new table
- * @param environment guththila_environment
- * @param overlay The first table to put in the new table
- * @param base The table to add at the end of the new table
- * @return A new table containing all of the data from the two passed in
- */
-guththila_table_t * guththila_table_overlay(guththila_environment_t *environment,
-                                             const guththila_table_t *overlay,
-                                             const guththila_table_t *base);
-
-/**
- * Declaration prototype for the iterator callback function of guththila_table_do()
- * and guththila_table_vdo().
- * @param rec The data passed as the first argument to guththila_table_[v]do()
- * @param key The key from this iteration of the table
- * @param value The value from this iteration of the table
- * @remark Iteration continues while this callback function returns non-zero.
- * To export the callback function for guththila_table_[v]do() it must be declared 
- * in the _NONSTD convention.
- */
-typedef int (guththila_table_do_callback_fn_t)(void *rec, const guththila_char_t *key, 
-                                                    const guththila_char_t *value);
-
-/** 
- * Iterate over a table running the provided function once for every
- * element in the table.  If there is data passed in as a vararg, then the 
- * function is only run on those elements whose key matches something in 
- * the vararg.  If the vararg is NULL, then every element is run through the
- * function.  Iteration continues while the function returns non-zero.
- * @param comp The function to run
- * @param rec The data to pass as the first argument to the function
- * @param t The table to iterate over
- * @param ... The vararg.  If this is NULL, then all elements in the table are
- *            run through the function, otherwise only those whose key matches
- *            are run.
- * @return FALSE if one of the comp() iterations returned zero; TRUE if all
- *            iterations returned non-zero
- * @see guththila_table_do_callback_fn_t
- */
-int guththila_table_do(guththila_table_do_callback_fn_t *comp,
-                                     void *rec, const guththila_table_t *t, ...);
-
-/** 
- * Iterate over a table running the provided function once for every
- * element in the table.  If there is data passed in as a vararg, then the 
- * function is only run on those element's whose key matches something in 
- * the vararg.  If the vararg is NULL, then every element is run through the
- * function.  Iteration continues while the function returns non-zero.
- * @param comp The function to run
- * @param rec The data to pass as the first argument to the function
- * @param t The table to iterate over
- * @param vp The vararg table.  If this is NULL, then all elements in the 
- *                table are run through the function, otherwise only those 
- *                whose key matches are run.
- * @return FALSE if one of the comp() iterations returned zero; TRUE if all
- *            iterations returned non-zero
- * @see guththila_table_do_callback_fn_t
- */
-int guththila_table_vdo(guththila_table_do_callback_fn_t *comp,
-                               void *rec, const guththila_table_t *t, va_list vp);
-
-/** flag for overlap to use guththila_table_setn */
-#define GUTHTHILA_OVERLAP_TABLES_SET   (0)
-/** flag for overlap to use guththila_table_mergen */
-#define GUTHTHILA_OVERLAP_TABLES_MERGE (1)
-/**
- * For each element in table b, either use setn or mergen to add the data
- * to table a.  Which method is used is determined by the flags passed in.
- * @param a The table to add the data to.
- * @param b The table to iterate over, adding its data to table a
- * @param flags How to add the table to table a.  One of:
- *          GUTHTHILA_OVERLAP_TABLES_SET        Use guththila_table_setn
- *          GUTHTHILA_OVERLAP_TABLES_MERGE      Use guththila_table_mergen
- * @remark  This function is highly optimized, and uses less memory and CPU cycles
- *          than a function that just loops through table b calling other functions.
- */
-/**
- *<PRE>
- * Conceptually, guththila_table_overlap does this:
- *
- *  guththila_array_header_t *barr = guththila_table_elts(b);
- *  guththila_table_entry_t *belt = (guththila_table_entry_t *)barr->elts;
- *  int i;
- *
- *  for (i = 0; i < barr->nelts; ++i) {
- *      if (flags & GUTHTHILA_OVERLAP_TABLES_MERGE) {
- *          guththila_table_mergen(a, belt[i].key, belt[i].val);
- *      }
- *      else {
- *          guththila_table_setn(a, belt[i].key, belt[i].val);
- *      }
- *  }
- *
- *  Except that it is more efficient (less space and cpu-time) especially
- *  when b has many elements.
- *
- *  Notice the assumptions on the keys and values in b -- they must be
- *  in an ancestor of a's pool.  In practice b and a are usually from
- *  the same pool.
- * </PRE>
- */
-
-void guththila_table_overlap(guththila_table_t *a, const guththila_table_t *b,
-                                     unsigned flags);
-
-/**
- * Eliminate redundant entries in a table by either overwriting
- * or merging duplicates
- *
- * @param t Table.
- * @param flags GUTHTHILA_OVERLAP_TABLES_MERGE to merge, or
- *              GUTHTHILA_OVERLAP_TABLES_SET to overwrite
- */
-void guththila_table_compress(guththila_table_t *t, unsigned flags);
 
 /** @} */
 
@@ -419,4 +160,4 @@
 }
 #endif
 
-#endif	/* ! GUTHTHILA_TABLES_H */
+#endif	/* ! GUTHTHILA__ARRAY_H */

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.c?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.c (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.c Mon Oct 24 02:23:17 2005
@@ -17,13 +17,11 @@
 #include <guththila_string.h>
 #include <stdlib.h>
 #include <string.h>
-#include "guththila_unicode.h"
-#include "guththila_defines.h"
 
 void* guththila_string_ops_strdup(const void* ptr)
 {
     if (ptr)
-        return (void*)strdup(ptr);
+        return (void*)strdup((const char*)ptr);
     else
         return NULL;
 }
@@ -63,18 +61,18 @@
         return guththila_strdup_unicode(x, y);
  
 #else 
-        register size_t n;
-	    register guththila_char_t *dst;
-
-	    n = guththila_string_ops_strlen(s1);
-	    if (len < n)
-    	        n = len;
-	    dst = (guththila_char_t *) malloc(n+1);
-	    if (dst)
-	    {
-	        memcpy(dst, s1, n);
-		    dst[n] = '\0';
-	    }
+        register size_t n;
+	    register guththila_char_t *dst;
+
+	    n = guththila_string_ops_strlen(s1);
+	    if (len < n)
+    	        n = len;
+	    dst = (guththila_char_t *) malloc(n+1);
+	    if (dst)
+	    {
+	        memcpy(dst, s1, n);
+		    dst[n] = '\0';
+	    }
 	    return dst;
 #endif
     }

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.h?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.h (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_string.h Mon Oct 24 02:23:17 2005
@@ -19,7 +19,6 @@
 
 #include <guththila_defines.h>
 #include <guththila_allocator.h>
-//#include "guththila_unicode.h"
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -30,8 +29,6 @@
     int (*guththila_string_strcmp)(const guththila_char_t *s1, const guththila_char_t *s2);
     guththila_char_t *(*guththila_string_strndup)(const guththila_char_t *s1,size_t n);
     int  (*guththila_string_strlen)(const guththila_char_t *s);
-    //guththila_char_t *(*guththila_string_strdup_unicode)(const guththila_char_t *s1,size_t n);
-   // guththila_UTF8_char (*guththila_string_strlen_unicode)(const guththila_char_t *);
 }guththila_string_t;
 
 /**
@@ -48,8 +45,6 @@
 #define guththila_strcmp(string, s1, s2) ((string)->guththila_string_strcmp(s1, s2))
 #define guththila_strndup(string,s1,n) ((string)->guththila_string_strndup(s1,n))
 #define guththila_strlen(string,s1) ((string)->guththila_string_strlen(s1))
-//#define guththila_strdup_unicode(string,s1,n) ((string)->guththila_string_strdup(s1,n))
-//#define guththila_strlen_unicode(string,s1) ((string)->guththila_string_strlen_unicode(s1))
 
 #ifdef __cplusplus
 }

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_pull_parser.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_pull_parser.c?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_pull_parser.c (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_pull_parser.c Mon Oct 24 02:23:17 2005
@@ -530,7 +530,7 @@
   int c;
   int ref = 0;
   int all_spaces = 1;
-  int last_event = guththila_event;
+/*  int last_event = guththila_event; */
   guththila_event = GUTHTHILA_CHARACTER;
   guththila_xml_pull_parser_open_token (environment,parser);
   do

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c?rev=328009&r1=328008&r2=328009&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c Mon Oct 24 02:23:17 2005
@@ -34,7 +34,7 @@
 
   guththila_xml_stream_writer_t* guththila_create_xml_stream_writer(guththila_environment_t *environment,FILE* writer, guththila_char_t* encoding, int prefix_defaulting)
 {
-    guththila_status_t status;
+ /*   guththila_status_t status; */
     guththila_xml_stream_writer_t *stream_writer;
     if (!writer)
         return 0;
@@ -45,7 +45,6 @@
         stream_writer->encoding = encoding;
     stream_writer->prefix_defaulting = prefix_defaulting;
 
-      /*initialize APR pool, we ned this pool to allocate memory to hash map and stack*/