fix the previous commit when value is static string: remove the special

static values processing, because it is anyway very seldom case
This commit is contained in:
Igor Sysoev 2010-06-01 17:30:23 +00:00
parent 1089957488
commit dc4b53fe61

View File

@ -1376,84 +1376,42 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
src = conf->params_source->elts; src = conf->params_source->elts;
for (i = 0; i < conf->params_source->nelts; i++) { for (i = 0; i < conf->params_source->nelts; i++) {
if (ngx_http_script_variables_count(&src[i].value) == 0) { copy = ngx_array_push_n(conf->params_len,
copy = ngx_array_push_n(conf->params_len, sizeof(ngx_http_script_copy_code_t));
sizeof(ngx_http_script_copy_code_t)); if (copy == NULL) {
if (copy == NULL) { return NGX_CONF_ERROR;
return NGX_CONF_ERROR; }
}
copy->code = (ngx_http_script_code_pt) copy->code = (ngx_http_script_code_pt) ngx_http_script_copy_len_code;
ngx_http_script_copy_len_code; copy->len = src[i].key.len;
copy->len = src[i].key.len;
copy = ngx_array_push_n(conf->params_len,
sizeof(ngx_http_script_copy_code_t));
if (copy == NULL) {
return NGX_CONF_ERROR;
}
copy->code = (ngx_http_script_code_pt)
ngx_http_script_copy_len_code;
copy->len = src[i].value.len;
size = (sizeof(ngx_http_script_copy_code_t) size = (sizeof(ngx_http_script_copy_code_t)
+ src[i].key.len + src[i].value.len + src[i].key.len + sizeof(uintptr_t) - 1)
+ sizeof(uintptr_t) - 1) & ~(sizeof(uintptr_t) - 1); & ~(sizeof(uintptr_t) - 1);
copy = ngx_array_push_n(conf->params, size); copy = ngx_array_push_n(conf->params, size);
if (copy == NULL) { if (copy == NULL) {
return NGX_CONF_ERROR; return NGX_CONF_ERROR;
} }
copy->code = ngx_http_script_copy_code; copy->code = ngx_http_script_copy_code;
copy->len = src[i].key.len + src[i].value.len; copy->len = src[i].key.len;
p = (u_char *) copy + sizeof(ngx_http_script_copy_code_t); p = (u_char *) copy + sizeof(ngx_http_script_copy_code_t);
ngx_memcpy(p, src[i].key.data, src[i].key.len);
p = ngx_cpymem(p, src[i].key.data, src[i].key.len);
ngx_memcpy(p, src[i].value.data, src[i].value.len);
} else {
copy = ngx_array_push_n(conf->params_len,
sizeof(ngx_http_script_copy_code_t));
if (copy == NULL) {
return NGX_CONF_ERROR;
}
copy->code = (ngx_http_script_code_pt)
ngx_http_script_copy_len_code;
copy->len = src[i].key.len;
size = (sizeof(ngx_http_script_copy_code_t) ngx_memzero(&sc, sizeof(ngx_http_script_compile_t));
+ src[i].key.len + sizeof(uintptr_t) - 1)
& ~(sizeof(uintptr_t) - 1);
copy = ngx_array_push_n(conf->params, size); sc.cf = cf;
if (copy == NULL) { sc.source = &src[i].value;
return NGX_CONF_ERROR; sc.flushes = &conf->flushes;
} sc.lengths = &conf->params_len;
sc.values = &conf->params;
copy->code = ngx_http_script_copy_code; if (ngx_http_script_compile(&sc) != NGX_OK) {
copy->len = src[i].key.len; return NGX_CONF_ERROR;
p = (u_char *) copy + sizeof(ngx_http_script_copy_code_t);
ngx_memcpy(p, src[i].key.data, src[i].key.len);
ngx_memzero(&sc, sizeof(ngx_http_script_compile_t));
sc.cf = cf;
sc.source = &src[i].value;
sc.flushes = &conf->flushes;
sc.lengths = &conf->params_len;
sc.values = &conf->params;
if (ngx_http_script_compile(&sc) != NGX_OK) {
return NGX_CONF_ERROR;
}
} }
code = ngx_array_push_n(conf->params_len, sizeof(uintptr_t)); code = ngx_array_push_n(conf->params_len, sizeof(uintptr_t));