Introduce JBIG2_PUTDWORD() macro in CJBIG2_Image.h

Provide symmetry with JBIG2_GETDWORD().
Avoid potential illegal undefined signed shift in JBIG2_GETDWORD().
Get better column alignment under cl-format via pointless shift by
zeros for consistency.

Change-Id: I13d46fe7976074e26df72b58a055788390191364
Reviewed-on: https://pdfium-review.googlesource.com/39430
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcodec/jbig2/JBig2_Image.cpp b/core/fxcodec/jbig2/JBig2_Image.cpp
index 59f65c6..6c61c78 100644
--- a/core/fxcodec/jbig2/JBig2_Image.cpp
+++ b/core/fxcodec/jbig2/JBig2_Image.cpp
@@ -17,6 +17,18 @@
 #include "core/fxcrt/fx_safe_types.h"
 #include "third_party/base/ptr_util.h"
 
+#define JBIG2_GETDWORD(buf)                  \
+  ((static_cast<uint32_t>((buf)[0]) << 24) | \
+   (static_cast<uint32_t>((buf)[1]) << 16) | \
+   (static_cast<uint32_t>((buf)[2]) << 8) |  \
+   (static_cast<uint32_t>((buf)[3]) << 0))
+
+#define JBIG2_PUTDWORD(buf, val)                 \
+  ((buf)[0] = static_cast<uint8_t>((val) >> 24), \
+   (buf)[1] = static_cast<uint8_t>((val) >> 16), \
+   (buf)[2] = static_cast<uint8_t>((val) >> 8),  \
+   (buf)[3] = static_cast<uint8_t>((val) >> 0))
+
 namespace {
 
 const int kMaxImagePixels = INT_MAX - 31;
@@ -154,9 +166,6 @@
   return m_pData ? pSrc->ComposeToWithRect(this, x, y, rtSrc, op) : false;
 }
 
-#define JBIG2_GETDWORD(buf) \
-  ((uint32_t)(((buf)[0] << 24) | ((buf)[1] << 16) | ((buf)[2] << 8) | (buf)[3]))
-
 std::unique_ptr<CJBig2_Image> CJBig2_Image::SubImage(int32_t x,
                                                      int32_t y,
                                                      int32_t w,
@@ -211,10 +220,7 @@
         } else {
           wTmp = JBIG2_GETDWORD(pSrc) << n;
         }
-        pDst[0] = (uint8_t)(wTmp >> 24);
-        pDst[1] = (uint8_t)(wTmp >> 16);
-        pDst[2] = (uint8_t)(wTmp >> 8);
-        pDst[3] = (uint8_t)wTmp;
+        JBIG2_PUTDWORD(pDst, wTmp);
       }
       pLineSrc += m_nStride;
       pLineDst += pImage->m_nStride;
@@ -311,10 +317,7 @@
               tmp = (tmp2 & ~maskM) | (tmp1 & maskM);
               break;
           }
-          lineDst[0] = (uint8_t)(tmp >> 24);
-          lineDst[1] = (uint8_t)(tmp >> 16);
-          lineDst[2] = (uint8_t)(tmp >> 8);
-          lineDst[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(lineDst, tmp);
           lineSrc += m_nStride;
           lineDst += pDst->m_nStride;
         }
@@ -341,10 +344,7 @@
               tmp = (tmp2 & ~maskM) | (tmp1 & maskM);
               break;
           }
-          lineDst[0] = (uint8_t)(tmp >> 24);
-          lineDst[1] = (uint8_t)(tmp >> 16);
-          lineDst[2] = (uint8_t)(tmp >> 8);
-          lineDst[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(lineDst, tmp);
           lineSrc += m_nStride;
           lineDst += pDst->m_nStride;
         }
@@ -374,10 +374,7 @@
             tmp = (tmp2 & ~maskM) | (tmp1 & maskM);
             break;
         }
-        lineDst[0] = (uint8_t)(tmp >> 24);
-        lineDst[1] = (uint8_t)(tmp >> 16);
-        lineDst[2] = (uint8_t)(tmp >> 8);
-        lineDst[3] = (uint8_t)tmp;
+        JBIG2_PUTDWORD(lineDst, tmp);
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;
       }
@@ -415,10 +412,7 @@
               tmp = (tmp2 & ~maskL) | (tmp1 & maskL);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -444,10 +438,7 @@
               tmp = tmp1;
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -475,10 +466,7 @@
               tmp = (tmp2 & ~maskR) | (tmp1 & maskR);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
         }
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;
@@ -509,10 +497,7 @@
               tmp = (tmp2 & ~maskL) | (tmp1 & maskL);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -537,10 +522,7 @@
               tmp = tmp1;
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -565,10 +547,7 @@
               tmp = (tmp2 & ~maskR) | (tmp1 & maskR);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
         }
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;
@@ -601,10 +580,7 @@
               tmp = (tmp2 & ~maskL) | (tmp1 & maskL);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           dp += 4;
         }
         for (int32_t xx = 0; xx < middleDwords; xx++) {
@@ -629,10 +605,7 @@
               tmp = tmp1;
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -660,10 +633,7 @@
               tmp = (tmp2 & ~maskR) | (tmp1 & maskR);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
         }
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;
@@ -737,10 +707,7 @@
               tmp = (tmp2 & ~maskM) | (tmp1 & maskM);
               break;
           }
-          lineDst[0] = (uint8_t)(tmp >> 24);
-          lineDst[1] = (uint8_t)(tmp >> 16);
-          lineDst[2] = (uint8_t)(tmp >> 8);
-          lineDst[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(lineDst, tmp);
           lineSrc += m_nStride;
           lineDst += pDst->m_nStride;
         }
@@ -769,10 +736,7 @@
               tmp = (tmp2 & ~maskM) | (tmp1 & maskM);
               break;
           }
-          lineDst[0] = (uint8_t)(tmp >> 24);
-          lineDst[1] = (uint8_t)(tmp >> 16);
-          lineDst[2] = (uint8_t)(tmp >> 8);
-          lineDst[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(lineDst, tmp);
           lineSrc += m_nStride;
           lineDst += pDst->m_nStride;
         }
@@ -804,10 +768,7 @@
             tmp = (tmp2 & ~maskM) | (tmp1 & maskM);
             break;
         }
-        lineDst[0] = (uint8_t)(tmp >> 24);
-        lineDst[1] = (uint8_t)(tmp >> 16);
-        lineDst[2] = (uint8_t)(tmp >> 8);
-        lineDst[3] = (uint8_t)tmp;
+        JBIG2_PUTDWORD(lineDst, tmp);
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;
       }
@@ -844,10 +805,7 @@
               tmp = (tmp2 & ~maskL) | (tmp1 & maskL);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -873,10 +831,7 @@
               tmp = tmp1;
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -904,10 +859,7 @@
               tmp = (tmp2 & ~maskR) | (tmp1 & maskR);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
         }
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;
@@ -940,10 +892,7 @@
               tmp = (tmp2 & ~maskL) | (tmp1 & maskL);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -968,10 +917,7 @@
               tmp = tmp1;
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -996,10 +942,7 @@
               tmp = (tmp2 & ~maskR) | (tmp1 & maskR);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
         }
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;
@@ -1034,10 +977,7 @@
               tmp = (tmp2 & ~maskL) | (tmp1 & maskL);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           dp += 4;
         }
         for (int32_t xx = 0; xx < middleDwords; xx++) {
@@ -1062,10 +1002,7 @@
               tmp = tmp1;
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
           sp += 4;
           dp += 4;
         }
@@ -1093,10 +1030,7 @@
               tmp = (tmp2 & ~maskR) | (tmp1 & maskR);
               break;
           }
-          dp[0] = (uint8_t)(tmp >> 24);
-          dp[1] = (uint8_t)(tmp >> 16);
-          dp[2] = (uint8_t)(tmp >> 8);
-          dp[3] = (uint8_t)tmp;
+          JBIG2_PUTDWORD(dp, tmp);
         }
         lineSrc += m_nStride;
         lineDst += pDst->m_nStride;