]> git.wincent.com - wikitext.git/commit
Add "capturing" member to parser struct
authorWincent Colaiuta <win@wincent.com>
Fri, 8 May 2009 14:08:03 +0000 (16:08 +0200)
committerWincent Colaiuta <win@wincent.com>
Fri, 8 May 2009 14:08:03 +0000 (16:08 +0200)
commit3a92f5090e4407d6753194b5c9ad3a0c49a641e3
tree731278d3adc1f46975a3926380b2860661c7f621
parentfff26a2a3c22d92bf82213708f032509af47e5f2
Add "capturing" member to parser struct

This is preparation for the eventual move of some, perhaps all,
of the members which are currently of String (VALUE) type to the
faster, more easily reused str_t type.

With the VALUE type we can check whether a member is initialized
or in use by doing a NIL_P(member) test.

This is not possible with the str_t type as it is a struct rather
than a pointer (although admittedly, we will be using a pointer to
the struct rather than the struct itself).

We don't want to dispose of the struct and set the pointer to NULL
because the whole point of reusing the str_t structs is that we
can allocate them only once at the start of parsing and then
use them over and over.

Likewise we don't want to abuse the "len" member of the srt_t
struct (for example, setting it to -1 to flag that it is not
in use), because it is not exactly intuitive or self-evident.

Similarly, we don't want to add an additional struct member (a
boolean) to indicate whether the struct is in use or not. The
struct itself shouldn't have to know or care about this; this
should be the responsibility of the caller using the struct.

So for now we set up this "capturing" bool so that we can
track when the parser is in capturing mode. The intention is
that in a later commit the "capture" member will become a
str_t instance (or a pointer to one).

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