]> git.wincent.com - wikitext.git/commitdiff
Minor reshuffling in _Wikitext_encode_link_target
authorWincent Colaiuta <win@wincent.com>
Tue, 12 May 2009 20:35:51 +0000 (22:35 +0200)
committerWincent Colaiuta <win@wincent.com>
Tue, 12 May 2009 20:35:51 +0000 (22:35 +0200)
Preparation for future removal of ALLOC_N.

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

index 0448b93ac8ae4bcd28182b147193e068161bfa8b..8f17b379a5bdad1818325cbbbc62d7c3d2fe73c9 100644 (file)
@@ -826,19 +826,15 @@ static void _Wikitext_encode_link_target(parser_t *parser)
     if (!(len > 0))
         return;
     char        *end        = src + len;
     if (!(len > 0))
         return;
     char        *end        = src + len;
-    static char hex[]       = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
-
-    // to avoid most reallocations start with a destination buffer twice the size of the source
-    // this handles the most common case (where most chars are in the ASCII range and don't require more storage, but there are
-    // often quite a few spaces, which are encoded as "%20" and occupy 3 bytes)
-    // the worst case is where _every_ byte must be written out using 3 bytes
     long        dest_len    = len * 2;
     char        *dest       = ALLOC_N(char, dest_len);
     char        *dest_ptr   = dest; // hang on to this so we can pass it to free() later
     char        *non_space  = dest; // remember last non-space character output
     long        dest_len    = len * 2;
     char        *dest       = ALLOC_N(char, dest_len);
     char        *dest_ptr   = dest; // hang on to this so we can pass it to free() later
     char        *non_space  = dest; // remember last non-space character output
+    static char hex[]       = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
     for (; src < end; src++)
     {
     for (; src < end; src++)
     {
-        if ((dest + 3) > (dest_ptr + dest_len))     // worst case: a single character may grow to 3 characters once encoded
+        // worst case: a single character may grow to 3 characters once encoded
+        if ((dest + 3) > (dest_ptr + dest_len))
         {
             // outgrowing buffer, must reallocate
             char *old_dest      = dest;
         {
             // outgrowing buffer, must reallocate
             char *old_dest      = dest;