You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Samisa Abeysinghe (JIRA)" <ji...@apache.org> on 2006/07/21 12:55:14 UTC

[jira] Assigned: (AXIS2C-43) Buffer growth not working in guththila

     [ http://issues.apache.org/jira/browse/AXIS2C-43?page=all ]

Samisa Abeysinghe reassigned AXIS2C-43:
---------------------------------------

    Assignee: Dinesh Premalal

> Buffer growth not working in guththila
> --------------------------------------
>
>                 Key: AXIS2C-43
>                 URL: http://issues.apache.org/jira/browse/AXIS2C-43
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: guththila
>         Environment: windows
>            Reporter: Ed Slattery
>         Assigned To: Dinesh Premalal
>            Priority: Minor
>
> I am not sure the current buffer growth in guththila is really growing the buffer. It appears to me
> to be growing the structure containing the buffer, but leaving the buffer at its original size.
> I also think the call to the growth routine may be reversing the new and old offsets such that the final
> offset if negative. Here are patches which I think are necessary.
> from guththila_xml_pull_parser.c...
> GUTHTHILA_DECLARE (int)
> guththila_xml_pull_parser_read (guththila_environment_t * environment,
>                                 guththila_xml_pull_parser_t * parser)
> {
>     int c = 0;
>     if (parser->_next == parser->buffer->size)
>     {
>         if (parser->offset > 0)
>         {
>             guththila_xml_pull_parser_relocate_tokens (environment, parser,
>                                                        parser->offset);
>             guththila_xml_pull_parser_shift (environment, parser);
>         }
>         else
>         {
>             /*- guththila_buffer_t *b = NULL;
>                 b = parser->buffer; */
>             /*+*/ int b = parser->buffer->size;
>             parser->buffer =
>                 guththila_buffer_grow (environment, parser->buffer);
>             /*- guththila_xml_pull_parser_relocate_tokens (
>                 environment, parser, (b->size - parser->buffer->size));*/
>             /*+*/guththila_xml_pull_parser_relocate_tokens (
>             /*+*/  environment, parser, (parser->buffer->size - b));
>         }
>     }
>     c = guththila_reader_read (environment, (parser->buffer->buff),
>                                (parser->_next),
>                                (parser->buffer->size) - (parser->_next),
>                                parser->reader);
>     parser->last += c;
>     return !c;
> }
> from guththila_buffer.c...
> GUTHTHILA_DECLARE (guththila_buffer_t *)
> guththila_buffer_grow (guththila_environment_t * environment,
>                        guththila_buffer_t * name)
> {
>     /*+*/guththila_char_t *x = NULL;
>     /*-  guththila_buffer_t *x = NULL; */
>     name->size <<= 1;
>     /*+*/x = (guththila_char_t *) GUTHTHILA_REALLOC (environment->allocator,
>     /*+*/                                              name->buff,name->size);
>     /*-  x = (guththila_buffer_t *) GUTHTHILA_REALLOC (environment->allocator,
>                                                       name, name->size); */
>     if (x)
>         /*-  name = x;*/
>         /*+*/name->buff = x;
>     else
>         /*- return NULL;*/
>         /*+*/name->size >>= 1;
>     return name;
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org