Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-45

Guththila ia non-reentrant

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • None
    • guththila
    • None
    • windows

    Description

      The guththila parser seems to be non-reentrant, as there is a global location for the current message. I have a wsdl which includes an
      XSD, and I parse both using two parsers. The inner one fails as it thinks the current message is whatever the outer one was parsing.
      This can be fixed by moving the mesage into the parser struct:

      /*- enum guththila_event_types guththila_event; */

      typedef struct guththila_xml_pull_parser_s
      {
      guththila_buffer_t *buffer;
      guththila_reader_t *reader;
      guththila_token_t *prefix;
      guththila_token_t *name;
      guththila_token_t *value;
      guththila_stack_t *stack;
      guththila_stack_t *attrib;
      guththila_stack_t *namesp;
      guththila_stack_t *dep;
      int _next;
      int offset;
      int last;
      int unicode_state;
      enum guththila_status status;
      /+/ enum guththila_event_types guththila_event;
      } guththila_xml_pull_parser_t;

      Plus replace all occurences of guththila_event with parser->guthtila_event.

      Attachments

        Activity

          People

            xydinesh Dinesh Weerapurage
            edslattery Edward Slattery
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: