]> git.wincent.com - wikitext.git/commit
Change 4 VALUE (String) members of the parser_t struct to str_t type
authorWincent Colaiuta <win@wincent.com>
Fri, 8 May 2009 15:44:01 +0000 (17:44 +0200)
committerWincent Colaiuta <win@wincent.com>
Sun, 10 May 2009 15:03:39 +0000 (17:03 +0200)
commit2744ebac68d01635482d8bfacf0fe776059051af
treea25ed44df751064901da674b07b0de0c8e01af0a
parent34032adebb45471f33181dc911ed8378922b148b
Change 4 VALUE (String) members of the parser_t struct to str_t type

This is unfortuantely quite a large commit because the nature of
the change requires many parts to be modified at once; the
intermediate stages are not buildable and therefore not
bisectable.

Change the capture, output, link_target and link_text members of
the parser struct from VALUE (String) type to str_t. This should
improve performance because the str_t is faster and designed for
easy reuse so we can allocate a few instances at the beginning
of parsing and then use them repeatedly throughout the parse,
thus avoid many time-consuming allocations.

Remove the "capturing" member and instead use the "capture"
pointer as an indication of whether capturing is in progress.

Change the type of the "target" param in the
_Wikitext_pop_from_stack function (and the other "pop
from stack" functions) from VALUE (String) to pointer
to str_t.

Change the type of the "check_autolink" parameter to the
_Wikitext_append_hyperlink function from VALUE (boolean) to
bool.

Remove redundant passing in of parser->output to the
_Wikitext_pop_from_stack function.

Teach _Wikitext_blank to accept a pointer to a str_t struct
rather than a Ruby String (VALUE).

Add parser_new function to encapsulate the initial allocation
and initialization of the parser_t struct.

Rename str_append_rb_str function to str_append_string for
consistency with other functions in str.c.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
ext/parser.c
ext/str.c
ext/str.h