From e0e2c2a4dcde45f1fb44a7febbb673ecf95c36ab Mon Sep 17 00:00:00 2001
From: John Sheu <john.sheu@gmail.com>
Date: Mon, 28 May 2012 20:43:10 -0700
Subject: [PATCH 1/4] Avoid RMW cycle on 8->16bpp conversion

Don't use "optimization" of doing 32-bit bitwise ops.  Just write raw
bytes.
---
 plugins/colorspace-transform/rs-cmm.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/plugins/colorspace-transform/rs-cmm.c b/plugins/colorspace-transform/rs-cmm.c
index 7c400f7..9e74ac4 100644
--- a/plugins/colorspace-transform/rs-cmm.c
+++ b/plugins/colorspace-transform/rs-cmm.c
@@ -260,9 +260,8 @@ rs_cmm_transform8(RSCmm *cmm, RS_IMAGE16 *input, GdkPixbuf *output, gint start_x
 		guchar *out = GET_PIXBUF_PIXEL(output, start_x, y);
 		cmsDoTransform(cmm->lcms_transform8, in, out, w);
 		/* Set alpha */
-		guint *outi = (guint*) out;
-		for (i = 0; i < w; i++)
-			outi[i] |= 0xff000000;
+		for (i = 0; i < w * 4; i += 4)
+			out[i + 3] = 0xff;
 	}
 }
 
-- 
1.7.3.4

