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

axiom_element_get_children() code behavior does not match header description

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.1.0
    • None
    • xml/om
    • None
    • Windows XP, Visual Studio 2005, guththila parser, libcurl

    Description

      The comments in axiom_element.h describing the behavior of axiom_element_get_children indicate that the returned interator is owned by the user and must be freed by the user. In fact, the code implements this function like axiom_element_get_children_with_qname, where the iterator is owned by the element and is freed when the om is freed.

      Obviously if the user follows the instructions in the .h file and frees the iterator, the memory may be reused before the om structure is freed, at which time things go rapidly downhill.

      Here are the current comments:

      /**

      • returns a list of children iterator
      • iterators free function must be called by user
        */
        AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL

      axiom_element_get_children(
      axiom_element_t * om_element,
      const axutil_env_t * env,
      axiom_node_t * element_node);

      I suggest this should read:
      /**

      • returns a list of children iterator
      • returned iterator is freed when om element struct
      • is freed
      • iterators reset function must be called by user
        */
        AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL

      axiom_element_get_children(
      ...

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            senakafdo Senaka Fernando
            wtmitchell3 Bill Mitchell
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment