diff options
-rw-r--r-- | lib/xmltree.c | 3 | ||||
-rw-r--r-- | lib/xmltree.h | 4 | ||||
-rw-r--r-- | protocols/jabber/io.c | 3 |
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 ); |