Factor out UnPreMultiplyPreservingByteOrder

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/130303005

git-svn-id: http://skia.googlecode.com/svn/trunk@13103 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/dm/DMWriteTask.cpp b/dm/DMWriteTask.cpp
index 11a71fa..faa20a2 100644
--- a/dm/DMWriteTask.cpp
+++ b/dm/DMWriteTask.cpp
@@ -137,17 +137,11 @@
         unpremul.setConfig(info);
         unpremul.allocPixels();
 
-        // Unpremultiply without changing native byte order.
         SkAutoLockPixels lockSrc(bitmap), lockDst(unpremul);
         const SkPMColor* src = (SkPMColor*)bitmap.getPixels();
         uint32_t* dst = (uint32_t*)unpremul.getPixels();
         for (size_t i = 0; i < bitmap.getSize()/4; i++) {
-            const U8CPU a = SkGetPackedA32(src[i]);
-            const SkUnPreMultiply::Scale s = SkUnPreMultiply::GetScale(a);
-            dst[i] = SkPackARGB32NoCheck(a,
-                                         SkUnPreMultiply::ApplyScale(s, SkGetPackedR32(src[i])),
-                                         SkUnPreMultiply::ApplyScale(s, SkGetPackedG32(src[i])),
-                                         SkUnPreMultiply::ApplyScale(s, SkGetPackedB32(src[i])));
+            dst[i] = SkUnPreMultiply::UnPreMultiplyPreservingByteOrder(src[i]);
         }
         bitmap.swap(unpremul);
     }