| Index: xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp
 | 
| diff --git a/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp b/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp
 | 
| index 4427cb89700153dda79c06a49066eed3dd0d4bc7..2aa57d18d1b29ad9deb460fc717de02b7a7c0ac4 100644
 | 
| --- a/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp
 | 
| +++ b/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp
 | 
| @@ -158,6 +158,7 @@ uint8_t* CBC_OnedEAN8Writer::Encode(const CFX_ByteString& contents,
 | 
|    }
 | 
|    return result;
 | 
|  }
 | 
| +
 | 
|  void CBC_OnedEAN8Writer::ShowChars(const CFX_WideStringC& contents,
 | 
|                                     CFX_DIBitmap* pOutBitmap,
 | 
|                                     CFX_RenderDevice* device,
 | 
| @@ -165,10 +166,11 @@ void CBC_OnedEAN8Writer::ShowChars(const CFX_WideStringC& contents,
 | 
|                                     int32_t barWidth,
 | 
|                                     int32_t multiple,
 | 
|                                     int32_t& e) {
 | 
| -  if (device == NULL && pOutBitmap == NULL) {
 | 
| +  if (!device && !pOutBitmap) {
 | 
|      e = BCExceptionIllegalArgument;
 | 
|      return;
 | 
|    }
 | 
| +
 | 
|    int32_t leftPosition = 3 * multiple;
 | 
|    CFX_ByteString str = FX_UTF8Encode(contents);
 | 
|    int32_t iLength = str.GetLength();
 | 
| @@ -179,12 +181,12 @@ void CBC_OnedEAN8Writer::ShowChars(const CFX_WideStringC& contents,
 | 
|    int32_t strWidth = 7 * multiple * 4;
 | 
|    FX_FLOAT blank = 0.0;
 | 
|    CFX_FxgeDevice geBitmap;
 | 
| -  if (pOutBitmap) {
 | 
| -    geBitmap.Attach(pOutBitmap);
 | 
| -  }
 | 
| +  if (pOutBitmap)
 | 
| +    geBitmap.Attach(pOutBitmap, false, nullptr, false);
 | 
| +
 | 
|    int32_t iFontSize = (int32_t)fabs(m_fFontSize);
 | 
|    int32_t iTextHeight = iFontSize + 1;
 | 
| -  if (pOutBitmap == NULL) {
 | 
| +  if (!pOutBitmap) {
 | 
|      CFX_Matrix matr(m_outputHScale, 0.0, 0.0, 1.0, 0.0, 0.0);
 | 
|      CFX_FloatRect rect(
 | 
|          (FX_FLOAT)leftPosition, (FX_FLOAT)(m_Height - iTextHeight),
 | 
| @@ -204,16 +206,16 @@ void CBC_OnedEAN8Writer::ShowChars(const CFX_WideStringC& contents,
 | 
|      re = rect1.GetOutterRect();
 | 
|      device->FillRect(&re, m_backgroundColor);
 | 
|    }
 | 
| -  if (pOutBitmap == NULL) {
 | 
| +  if (!pOutBitmap)
 | 
|      strWidth = (int32_t)(strWidth * m_outputHScale);
 | 
| -  }
 | 
| +
 | 
|    CalcTextInfo(tempStr, pCharPos, m_pFont, (FX_FLOAT)strWidth, iFontSize,
 | 
|                 blank);
 | 
|    CFX_Matrix affine_matrix(1.0, 0.0, 0.0, -1.0, 0.0, (FX_FLOAT)iFontSize);
 | 
|    CFX_FxgeDevice ge;
 | 
|    if (pOutBitmap) {
 | 
|      delete ge.GetBitmap();
 | 
| -    ge.Create(strWidth, iTextHeight, FXDIB_Argb);
 | 
| +    ge.Create(strWidth, iTextHeight, FXDIB_Argb, nullptr);
 | 
|      ge.GetBitmap()->Clear(m_backgroundColor);
 | 
|      ge.DrawNormalText(iLen, pCharPos, m_pFont,
 | 
|                        CFX_GEModule::Get()->GetFontCache(), (FX_FLOAT)iFontSize,
 | 
| @@ -236,7 +238,7 @@ void CBC_OnedEAN8Writer::ShowChars(const CFX_WideStringC& contents,
 | 
|                 blank);
 | 
|    if (pOutBitmap) {
 | 
|      delete ge.GetBitmap();
 | 
| -    ge.Create(strWidth, iTextHeight, FXDIB_Argb);
 | 
| +    ge.Create(strWidth, iTextHeight, FXDIB_Argb, nullptr);
 | 
|      ge.GetBitmap()->Clear(m_backgroundColor);
 | 
|      ge.DrawNormalText(iLen, pCharPos + 4, m_pFont,
 | 
|                        CFX_GEModule::Get()->GetFontCache(), (FX_FLOAT)iFontSize,
 | 
| @@ -259,6 +261,7 @@ void CBC_OnedEAN8Writer::ShowChars(const CFX_WideStringC& contents,
 | 
|    }
 | 
|    FX_Free(pCharPos);
 | 
|  }
 | 
| +
 | 
|  void CBC_OnedEAN8Writer::RenderResult(const CFX_WideStringC& contents,
 | 
|                                        uint8_t* code,
 | 
|                                        int32_t codeLength,
 | 
| 
 |