pike.git / src / cpp.cmod

version» Context lines:

pike.git/src/cpp.cmod:4213:    }       if(!fun && this->directives) {    /* Try a mapping lookup instead. */    fun = low_mapping_string_lookup(this->directives, directive);    }       if (fun) {    ptrdiff_t foo;    free_string(directive); +  directive = NULL;       SKIPSPACE();    foo = pos;    FIND_EOL();    push_int(flags);    push_string(make_shared_binary_pcharp(ADD_PCHARP(data,foo), pos-foo));    safe_apply_svalue(fun, 2, 1);    if ((TYPEOF(Pike_sp[-1]) == PIKE_T_STRING) &&    Pike_sp[-1].u.string->len) {    /* We need to recurse. */    low_cpp(this, MKPCHARP_STR(Pike_sp[-1].u.string),    Pike_sp[-1].u.string->len, flags, charset);    }    pop_stack();    break;    }    }       if(!OUTP() && !this->picky_cpp) -  +  { +  if(directive) free_string(directive);    break; -  +  }       if (directive) {    cpp_error_sprintf(this, "Unknown preprocessor directive %S.",    directive);    free_string(directive);    } else {    cpp_error_sprintf(this, "Invalid preprocessor directive character at %d: '%c'.",    pos, DATA(pos));    }    }