aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/xmltree.c3
-rw-r--r--lib/xmltree.h4
-rw-r--r--protocols/jabber/io.c3
3 files changed, 5 insertions, 5 deletions
diff --git a/lib/xmltree.c b/lib/xmltree.c
index 62549eb5..e65b4f41 100644
--- a/lib/xmltree.c
+++ b/lib/xmltree.c
@@ -110,11 +110,12 @@ GMarkupParser xt_parser_funcs =
NULL
};
-struct xt_parser *xt_new( gpointer data )
+struct xt_parser *xt_new( const struct xt_handler_entry *handlers, gpointer data )
{
struct xt_parser *xt = g_new0( struct xt_parser, 1 );
xt->data = data;
+ xt->handlers = handlers;
xt_reset( xt );
return xt;
diff --git a/lib/xmltree.h b/lib/xmltree.h
index b8b61641..10677412 100644
--- a/lib/xmltree.h
+++ b/lib/xmltree.h
@@ -70,13 +70,13 @@ struct xt_parser
struct xt_node *root;
struct xt_node *cur;
- struct xt_handler_entry *handlers;
+ const struct xt_handler_entry *handlers;
gpointer data;
GError *gerr;
};
-struct xt_parser *xt_new( gpointer data );
+struct xt_parser *xt_new( const struct xt_handler_entry *handlers, gpointer data );
void xt_reset( struct xt_parser *xt );
int xt_feed( struct xt_parser *xt, char *text, int text_len );
int xt_handle( struct xt_parser *xt, struct xt_node *node, int depth );
diff --git a/protocols/jabber/io.c b/protocols/jabber/io.c
index 86c216ef..9980dc8e 100644
--- a/protocols/jabber/io.c
+++ b/protocols/jabber/io.c
@@ -520,8 +520,7 @@ gboolean jabber_start_stream( struct im_connection *ic )
/* We'll start our stream now, so prepare everything to receive one
from the server too. */
xt_free( jd->xt ); /* In case we're RE-starting. */
- jd->xt = xt_new( ic );
- jd->xt->handlers = (struct xt_handler_entry*) jabber_handlers;
+ jd->xt = xt_new( jabber_handlers, ic );
if( jd->r_inpa <= 0 )
jd->r_inpa = b_input_add( jd->fd, GAIM_INPUT_READ, jabber_read_callback, ic );