Code

Fix expression whose behaviour is undefined in C++. N.B. This “fix” involves guessin...
authorpjrm <pjrm@users.sourceforge.net>
Thu, 5 Jun 2008 06:06:34 +0000 (06:06 +0000)
committerpjrm <pjrm@users.sourceforge.net>
Thu, 5 Jun 2008 06:06:34 +0000 (06:06 +0000)
src/display/nr-filter-specularlighting.cpp

index 1c131b4ccba8483de48f40c445115817b897a2d7..3a14eb78f8af798a300b4f498bb91a9e927a8be4 100644 (file)
@@ -108,7 +108,8 @@ int FilterSpecularLighting::render(FilterSlot &slot, FilterUnits const &units) {
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_RED]);
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_GREEN]);
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_BLUE]);
-                data_o[j++] = MAX(MAX(data_o[j-3], data_o[j-2]), data_o[j-1]);
+                data_o[j] = MAX(MAX(data_o[j-3], data_o[j-2]), data_o[j-1]);
+                ++j;
             }
             out->empty = FALSE;
             delete dl;
@@ -135,7 +136,8 @@ int FilterSpecularLighting::render(FilterSlot &slot, FilterUnits const &units) {
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_RED]);
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_GREEN]);
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_BLUE]);
-                data_o[j++] = MAX(MAX(data_o[j-3], data_o[j-2]), data_o[j-1]);
+                data_o[j] = MAX(MAX(data_o[j-3], data_o[j-2]), data_o[j-1]);
+                ++j;
             }
             out->empty = FALSE;
             delete pl;
@@ -162,7 +164,8 @@ int FilterSpecularLighting::render(FilterSlot &slot, FilterUnits const &units) {
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_RED]);
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_GREEN]);
                 data_o[j++] = CLAMP_D_TO_U8(inter * LC[LIGHT_BLUE]);
-                data_o[j++] = MAX(MAX(data_o[j-3], data_o[j-2]), data_o[j-1]);
+                data_o[j] = MAX(MAX(data_o[j-3], data_o[j-2]), data_o[j-1]);
+                ++j;
             }
             out->empty = FALSE;
             delete sl;