VirtualBox

Changeset 1811 in kBuild for trunk/src/kmk/variable.c


Ignore:
Timestamp:
Oct 10, 2008 5:19:58 AM (16 years ago)
Author:
bird
Message:

kmk: More string length optimizations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/variable.c

    r1809 r1811  
    921921              else
    922922                {
     923#ifndef CONFIG_WITH_VALUE_LENGTH
    923924                  v = do_variable_definition (
    924925                    &p->variable.fileinfo, p->variable.name,
    925926                    p->variable.value, p->variable.origin,
    926927                    p->variable.flavor, 1);
     928#else
     929                  v = do_variable_definition_2 (
     930                    &p->variable.fileinfo, p->variable.name,
     931                    p->variable.value, p->variable.value_length, 0, 0,
     932                    p->variable.origin, p->variable.flavor, 1);
     933#endif
    927934                }
    928935
     
    20302037
    20312038struct variable *
     2039#ifndef CONFIG_WITH_VALUE_LENGTH
    20322040parse_variable_definition (struct variable *v, char *line)
     2041#else
     2042parse_variable_definition (struct variable *v, char *line, char *eos)
     2043#endif
    20332044{
    20342045  register int c;
     
    21192130  v->value = p;
    21202131#ifdef CONFIG_WITH_VALUE_LENGTH
    2121   v->value_length = v->value_alloc_len = -1;
     2132  v->value_alloc_len = -1;
     2133  v->value_length = eos != NULL ? eos - p : -1;
     2134  assert (eos == NULL || strchr (p, '\0') == eos);
    21222135#endif
    21232136
     
    21532166
    21542167struct variable *
     2168#ifndef CONFIG_WITH_VALUE_LENGTH
    21552169try_variable_definition (const struct floc *flocp, char *line,
    21562170                         enum variable_origin origin, int target_var)
     2171#else
     2172try_variable_definition (const struct floc *flocp, char *line, char *eos,
     2173                         enum variable_origin origin, int target_var)
     2174#endif
    21572175{
    21582176  struct variable v;
     
    21642182    v.fileinfo.filenm = 0;
    21652183
     2184#ifndef CONFIG_WITH_VALUE_LENGTH
    21662185  if (!parse_variable_definition (&v, line))
    21672186    return 0;
     
    21692188  vp = do_variable_definition (flocp, v.name, v.value,
    21702189                               origin, v.flavor, target_var);
     2190#else
     2191  if (!parse_variable_definition (&v, line, eos))
     2192    return 0;
     2193
     2194  vp = do_variable_definition_2 (flocp, v.name, v.value,
     2195                                 v.value_length != -1 ? v.value_length : ~0U,
     2196                                 0, NULL, origin, v.flavor, target_var);
     2197#endif
    21712198
    21722199  free (v.name);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette