Ignore:
Timestamp:
Feb 1, 2015, 9:48:36 PM (10 years ago)
Author:
bird
Message:

Optimizations, tuning and bug fixes for the 'compiled' string expansion code.

File:
1 edited

Legend:

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

    r2770 r2771  
    21682168          /* Compile the variable for evalval, evalctx and expansion. */
    21692169
    2170           if (!v->evalprog)
    2171             kmk_cc_compile_variable_for_eval (v);
    2172           if (!v->expandprog)
    2173             kmk_cc_compile_variable_for_expand (v);
     2170          if (   v->recursive
     2171              && !IS_VARIABLE_RECURSIVE_WITHOUT_DOLLAR (v))
     2172                kmk_cc_compile_variable_for_expand (v);
     2173          kmk_cc_compile_variable_for_eval (v);
    21742174# endif
    21752175        }
     
    41224122  if (var1->value == var2->value)
    41234123    return variable_buffer_output (o, "", 0);       /* eq */
    4124   if (!var1->recursive && !var2->recursive)
     4124  if (   (!var1->recursive || IS_VARIABLE_RECURSIVE_WITHOUT_DOLLAR (var1))
     4125      && (!var2->recursive || IS_VARIABLE_RECURSIVE_WITHOUT_DOLLAR (var2)) )
    41254126  {
    41264127    if (    var1->value_length == var2->value_length
     
    60056006      if (v && v->value_length)
    60066007        {
    6007           if (v->recursive)
     6008          if (v->recursive && !IS_VARIABLE_RECURSIVE_WITHOUT_DOLLAR (v))
    60086009            {
    60096010              v->exp_count = EXP_COUNT_MAX;
Note: See TracChangeset for help on using the changeset viewer.