[nginx] svn commit: r4982 - trunk/src/http/modules
mdounin at mdounin.ru
mdounin at mdounin.ru
Fri Dec 21 15:07:46 UTC 2012
Author: mdounin
Date: 2012-12-21 15:07:45 +0000 (Fri, 21 Dec 2012)
New Revision: 4982
URL: http://trac.nginx.org/nginx/changeset/4982/nginx
Log:
Image filter: fixed image_filter rotate inheritance.
Configurations like
location /i/ {
image_filter resize 200 200;
image_filter rotate 180;
location /i/foo/ {
image_filter resize 200 200;
}
}
resulted in rotation incorrectly applied in the location /i/foo, without
any way to clear it. Fix is to handle conf->angle/conf->acv consistently
with other filter variables and do not try to inherit them if there are
transformations defined for current location.
Modified:
trunk/src/http/modules/ngx_http_image_filter_module.c
Modified: trunk/src/http/modules/ngx_http_image_filter_module.c
===================================================================
--- trunk/src/http/modules/ngx_http_image_filter_module.c 2012-12-21 08:46:52 UTC (rev 4981)
+++ trunk/src/http/modules/ngx_http_image_filter_module.c 2012-12-21 15:07:45 UTC (rev 4982)
@@ -1169,10 +1169,22 @@
return NULL;
}
+ /*
+ * set by ngx_pcalloc():
+ *
+ * conf->width = 0;
+ * conf->height = 0;
+ * conf->angle = 0;
+ * conf->wcv = NULL;
+ * conf->hcv = NULL;
+ * conf->acv = NULL;
+ * conf->jqcv = NULL;
+ * conf->shcv = NULL;
+ */
+
conf->filter = NGX_CONF_UNSET_UINT;
conf->jpeg_quality = NGX_CONF_UNSET_UINT;
conf->sharpen = NGX_CONF_UNSET_UINT;
- conf->angle = NGX_CONF_UNSET_UINT;
conf->transparency = NGX_CONF_UNSET;
conf->buffer_size = NGX_CONF_UNSET_SIZE;
@@ -1195,8 +1207,10 @@
conf->filter = prev->filter;
conf->width = prev->width;
conf->height = prev->height;
+ conf->angle = prev->angle;
conf->wcv = prev->wcv;
conf->hcv = prev->hcv;
+ conf->acv = prev->acv;
}
}
@@ -1218,14 +1232,6 @@
}
}
- if (conf->angle == NGX_CONF_UNSET_UINT) {
- ngx_conf_merge_uint_value(conf->angle, prev->angle, 0);
-
- if (conf->acv == NULL) {
- conf->acv = prev->acv;
- }
- }
-
ngx_conf_merge_value(conf->transparency, prev->transparency, 1);
ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size,
More information about the nginx-devel
mailing list