| Index: xfa/src/fxbarcode/pdf417/BC_PDF417BoundingBox.cpp | 
| diff --git a/xfa/src/fxbarcode/pdf417/BC_PDF417BoundingBox.cpp b/xfa/src/fxbarcode/pdf417/BC_PDF417BoundingBox.cpp | 
| index 02d9316f640b367ff5a9d545ccc845df56ae1170..73fa1327efda52d0eb8a8c93054fb78c45ffc833 100644 | 
| --- a/xfa/src/fxbarcode/pdf417/BC_PDF417BoundingBox.cpp | 
| +++ b/xfa/src/fxbarcode/pdf417/BC_PDF417BoundingBox.cpp | 
| @@ -1,207 +1,207 @@ | 
| -// Copyright 2014 PDFium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
| -// Original code is licensed as follows: | 
| -/* | 
| - * Copyright 2013 ZXing authors | 
| - * | 
| - * Licensed under the Apache License, Version 2.0 (the "License"); | 
| - * you may not use this file except in compliance with the License. | 
| - * You may obtain a copy of the License at | 
| - * | 
| - *      http://www.apache.org/licenses/LICENSE-2.0 | 
| - * | 
| - * Unless required by applicable law or agreed to in writing, software | 
| - * distributed under the License is distributed on an "AS IS" BASIS, | 
| - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
| - * See the License for the specific language governing permissions and | 
| - * limitations under the License. | 
| - */ | 
| - | 
| -#include "xfa/src/fxbarcode/barcode.h" | 
| -#include "xfa/src/fxbarcode/BC_ResultPoint.h" | 
| -#include "xfa/src/fxbarcode/common/BC_CommonBitMatrix.h" | 
| -#include "BC_PDF417BoundingBox.h" | 
| -CBC_BoundingBox::CBC_BoundingBox(CBC_CommonBitMatrix* image, | 
| -                                 CBC_ResultPoint* topLeft, | 
| -                                 CBC_ResultPoint* bottomLeft, | 
| -                                 CBC_ResultPoint* topRight, | 
| -                                 CBC_ResultPoint* bottomRight, | 
| -                                 int32_t& e) { | 
| -  if ((topLeft == NULL && topRight == NULL) || | 
| -      (bottomLeft == NULL && bottomRight == NULL) || | 
| -      (topLeft != NULL && bottomLeft == NULL) || | 
| -      (topRight != NULL && bottomRight == NULL)) { | 
| -    e = BCExceptionNotFoundInstance; | 
| -  } | 
| -  init(image, topLeft, bottomLeft, topRight, bottomRight); | 
| -} | 
| -CBC_BoundingBox::CBC_BoundingBox(CBC_BoundingBox* boundingBox) { | 
| -  init(boundingBox->m_image, boundingBox->m_topLeft, boundingBox->m_bottomLeft, | 
| -       boundingBox->m_topRight, boundingBox->m_bottomRight); | 
| -} | 
| -CBC_BoundingBox::~CBC_BoundingBox() { | 
| -  if (m_topLeft) { | 
| -    delete m_topLeft; | 
| -  } | 
| -  if (m_bottomLeft) { | 
| -    delete m_bottomLeft; | 
| -  } | 
| -  if (m_topRight) { | 
| -    delete m_topRight; | 
| -  } | 
| -  if (m_bottomRight) { | 
| -    delete m_bottomRight; | 
| -  } | 
| -} | 
| -CBC_BoundingBox* CBC_BoundingBox::merge(CBC_BoundingBox* leftBox, | 
| -                                        CBC_BoundingBox* rightBox, | 
| -                                        int32_t& e) { | 
| -  CBC_BoundingBox* boundingBox = NULL; | 
| -  if (leftBox == NULL) { | 
| -    boundingBox = new CBC_BoundingBox(rightBox); | 
| -    return boundingBox; | 
| -  } | 
| -  if (rightBox == NULL) { | 
| -    boundingBox = new CBC_BoundingBox(leftBox); | 
| -    return boundingBox; | 
| -  } | 
| -  boundingBox = new CBC_BoundingBox(leftBox->m_image, leftBox->m_topLeft, | 
| -                                    leftBox->m_bottomLeft, rightBox->m_topRight, | 
| -                                    rightBox->m_bottomRight, e); | 
| -  BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | 
| -  return boundingBox; | 
| -} | 
| -CBC_BoundingBox* CBC_BoundingBox::addMissingRows(int32_t missingStartRows, | 
| -                                                 int32_t missingEndRows, | 
| -                                                 FX_BOOL isLeft, | 
| -                                                 int32_t& e) { | 
| -  CBC_ResultPoint* newTopLeft = m_topLeft; | 
| -  CBC_ResultPoint* newBottomLeft = m_bottomLeft; | 
| -  CBC_ResultPoint* newTopRight = m_topRight; | 
| -  CBC_ResultPoint* newBottomRight = m_bottomRight; | 
| -  CBC_ResultPoint* newTop = NULL; | 
| -  CBC_ResultPoint* newBottom = NULL; | 
| -  if (missingStartRows > 0) { | 
| -    CBC_ResultPoint* top = isLeft ? m_topLeft : m_topRight; | 
| -    int32_t newMinY = (int32_t)top->GetY() - missingStartRows; | 
| -    if (newMinY < 0) { | 
| -      newMinY = 0; | 
| -    } | 
| -    newTop = new CBC_ResultPoint((FX_FLOAT)top->GetX(), (FX_FLOAT)newMinY); | 
| -    if (isLeft) { | 
| -      newTopLeft = newTop; | 
| -    } else { | 
| -      newTopRight = newTop; | 
| -    } | 
| -  } | 
| -  if (missingEndRows > 0) { | 
| -    CBC_ResultPoint* bottom = isLeft ? m_bottomLeft : m_bottomRight; | 
| -    int32_t newMaxY = (int32_t)bottom->GetY() + missingEndRows; | 
| -    if (newMaxY >= m_image->GetHeight()) { | 
| -      newMaxY = m_image->GetHeight() - 1; | 
| -    } | 
| -    newBottom = | 
| -        new CBC_ResultPoint((FX_FLOAT)bottom->GetX(), (FX_FLOAT)newMaxY); | 
| -    if (isLeft) { | 
| -      newBottomLeft = newBottom; | 
| -    } else { | 
| -      newBottomRight = newBottom; | 
| -    } | 
| -  } | 
| -  calculateMinMaxValues(); | 
| -  CBC_BoundingBox* boundingBox = new CBC_BoundingBox( | 
| -      m_image, newTopLeft, newBottomLeft, newTopRight, newBottomRight, e); | 
| -  delete newTop; | 
| -  delete newBottom; | 
| -  BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | 
| -  return boundingBox; | 
| -} | 
| -void CBC_BoundingBox::setTopRight(CBC_ResultPoint topRight) { | 
| -  if (m_topRight) { | 
| -    delete m_topRight; | 
| -  } | 
| -  m_topRight = new CBC_ResultPoint(topRight.GetX(), topRight.GetY()); | 
| -  calculateMinMaxValues(); | 
| -} | 
| -void CBC_BoundingBox::setBottomRight(CBC_ResultPoint bottomRight) { | 
| -  if (m_bottomRight) { | 
| -    delete m_bottomRight; | 
| -  } | 
| -  m_bottomRight = new CBC_ResultPoint(bottomRight.GetX(), bottomRight.GetY()); | 
| -  calculateMinMaxValues(); | 
| -} | 
| -int32_t CBC_BoundingBox::getMinX() { | 
| -  return m_minX; | 
| -} | 
| -int32_t CBC_BoundingBox::getMaxX() { | 
| -  return m_maxX; | 
| -} | 
| -int32_t CBC_BoundingBox::getMinY() { | 
| -  return m_minY; | 
| -} | 
| -int32_t CBC_BoundingBox::getMaxY() { | 
| -  return m_maxY; | 
| -} | 
| -CBC_ResultPoint* CBC_BoundingBox::getTopLeft() { | 
| -  return m_topLeft; | 
| -} | 
| -CBC_ResultPoint* CBC_BoundingBox::getTopRight() { | 
| -  return m_topRight; | 
| -} | 
| -CBC_ResultPoint* CBC_BoundingBox::getBottomLeft() { | 
| -  return m_bottomLeft; | 
| -} | 
| -CBC_ResultPoint* CBC_BoundingBox::getBottomRight() { | 
| -  return m_bottomRight; | 
| -} | 
| -void CBC_BoundingBox::init(CBC_CommonBitMatrix* image, | 
| -                           CBC_ResultPoint* topLeft, | 
| -                           CBC_ResultPoint* bottomLeft, | 
| -                           CBC_ResultPoint* topRight, | 
| -                           CBC_ResultPoint* bottomRight) { | 
| -  m_topLeft = NULL; | 
| -  m_bottomLeft = NULL; | 
| -  m_topRight = NULL; | 
| -  m_bottomRight = NULL; | 
| -  m_image = image; | 
| -  if (topLeft) { | 
| -    m_topLeft = new CBC_ResultPoint(topLeft->GetX(), topLeft->GetY()); | 
| -  } | 
| -  if (bottomLeft) { | 
| -    m_bottomLeft = new CBC_ResultPoint(bottomLeft->GetX(), bottomLeft->GetY()); | 
| -  } | 
| -  if (topRight) { | 
| -    m_topRight = new CBC_ResultPoint(topRight->GetX(), topRight->GetY()); | 
| -  } | 
| -  if (bottomRight) { | 
| -    m_bottomRight = | 
| -        new CBC_ResultPoint(bottomRight->GetX(), bottomRight->GetY()); | 
| -  } | 
| -  calculateMinMaxValues(); | 
| -} | 
| -void CBC_BoundingBox::calculateMinMaxValues() { | 
| -  if (m_topLeft == NULL) { | 
| -    m_topLeft = new CBC_ResultPoint(0, m_topRight->GetY()); | 
| -    m_bottomLeft = new CBC_ResultPoint(0, m_bottomRight->GetY()); | 
| -  } else if (m_topRight == NULL) { | 
| -    m_topRight = new CBC_ResultPoint((FX_FLOAT)m_image->GetWidth() - 1, | 
| -                                     (FX_FLOAT)m_topLeft->GetY()); | 
| -    m_bottomRight = new CBC_ResultPoint((FX_FLOAT)m_image->GetWidth() - 1, | 
| -                                        (FX_FLOAT)m_bottomLeft->GetY()); | 
| -  } | 
| -  m_minX = (int32_t)(m_topLeft->GetX() < m_bottomLeft->GetX() | 
| -                         ? m_topLeft->GetX() | 
| -                         : m_bottomLeft->GetX()); | 
| -  m_maxX = (int32_t)(m_topRight->GetX() > m_bottomRight->GetX() | 
| -                         ? m_topRight->GetX() | 
| -                         : m_bottomRight->GetX()); | 
| -  m_minY = | 
| -      (int32_t)(m_topLeft->GetY() < m_topRight->GetY() ? m_topLeft->GetY() | 
| -                                                       : m_topRight->GetY()); | 
| -  m_maxY = (int32_t)(m_bottomLeft->GetY() > m_bottomRight->GetY() | 
| -                         ? m_bottomLeft->GetY() | 
| -                         : m_bottomRight->GetY()); | 
| -} | 
| +// Copyright 2014 PDFium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
| +// Original code is licensed as follows: | 
| +/* | 
| + * Copyright 2013 ZXing authors | 
| + * | 
| + * Licensed under the Apache License, Version 2.0 (the "License"); | 
| + * you may not use this file except in compliance with the License. | 
| + * You may obtain a copy of the License at | 
| + * | 
| + *      http://www.apache.org/licenses/LICENSE-2.0 | 
| + * | 
| + * Unless required by applicable law or agreed to in writing, software | 
| + * distributed under the License is distributed on an "AS IS" BASIS, | 
| + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
| + * See the License for the specific language governing permissions and | 
| + * limitations under the License. | 
| + */ | 
| + | 
| +#include "xfa/src/fxbarcode/barcode.h" | 
| +#include "xfa/src/fxbarcode/BC_ResultPoint.h" | 
| +#include "xfa/src/fxbarcode/common/BC_CommonBitMatrix.h" | 
| +#include "BC_PDF417BoundingBox.h" | 
| +CBC_BoundingBox::CBC_BoundingBox(CBC_CommonBitMatrix* image, | 
| +                                 CBC_ResultPoint* topLeft, | 
| +                                 CBC_ResultPoint* bottomLeft, | 
| +                                 CBC_ResultPoint* topRight, | 
| +                                 CBC_ResultPoint* bottomRight, | 
| +                                 int32_t& e) { | 
| +  if ((topLeft == NULL && topRight == NULL) || | 
| +      (bottomLeft == NULL && bottomRight == NULL) || | 
| +      (topLeft != NULL && bottomLeft == NULL) || | 
| +      (topRight != NULL && bottomRight == NULL)) { | 
| +    e = BCExceptionNotFoundInstance; | 
| +  } | 
| +  init(image, topLeft, bottomLeft, topRight, bottomRight); | 
| +} | 
| +CBC_BoundingBox::CBC_BoundingBox(CBC_BoundingBox* boundingBox) { | 
| +  init(boundingBox->m_image, boundingBox->m_topLeft, boundingBox->m_bottomLeft, | 
| +       boundingBox->m_topRight, boundingBox->m_bottomRight); | 
| +} | 
| +CBC_BoundingBox::~CBC_BoundingBox() { | 
| +  if (m_topLeft) { | 
| +    delete m_topLeft; | 
| +  } | 
| +  if (m_bottomLeft) { | 
| +    delete m_bottomLeft; | 
| +  } | 
| +  if (m_topRight) { | 
| +    delete m_topRight; | 
| +  } | 
| +  if (m_bottomRight) { | 
| +    delete m_bottomRight; | 
| +  } | 
| +} | 
| +CBC_BoundingBox* CBC_BoundingBox::merge(CBC_BoundingBox* leftBox, | 
| +                                        CBC_BoundingBox* rightBox, | 
| +                                        int32_t& e) { | 
| +  CBC_BoundingBox* boundingBox = NULL; | 
| +  if (leftBox == NULL) { | 
| +    boundingBox = new CBC_BoundingBox(rightBox); | 
| +    return boundingBox; | 
| +  } | 
| +  if (rightBox == NULL) { | 
| +    boundingBox = new CBC_BoundingBox(leftBox); | 
| +    return boundingBox; | 
| +  } | 
| +  boundingBox = new CBC_BoundingBox(leftBox->m_image, leftBox->m_topLeft, | 
| +                                    leftBox->m_bottomLeft, rightBox->m_topRight, | 
| +                                    rightBox->m_bottomRight, e); | 
| +  BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | 
| +  return boundingBox; | 
| +} | 
| +CBC_BoundingBox* CBC_BoundingBox::addMissingRows(int32_t missingStartRows, | 
| +                                                 int32_t missingEndRows, | 
| +                                                 FX_BOOL isLeft, | 
| +                                                 int32_t& e) { | 
| +  CBC_ResultPoint* newTopLeft = m_topLeft; | 
| +  CBC_ResultPoint* newBottomLeft = m_bottomLeft; | 
| +  CBC_ResultPoint* newTopRight = m_topRight; | 
| +  CBC_ResultPoint* newBottomRight = m_bottomRight; | 
| +  CBC_ResultPoint* newTop = NULL; | 
| +  CBC_ResultPoint* newBottom = NULL; | 
| +  if (missingStartRows > 0) { | 
| +    CBC_ResultPoint* top = isLeft ? m_topLeft : m_topRight; | 
| +    int32_t newMinY = (int32_t)top->GetY() - missingStartRows; | 
| +    if (newMinY < 0) { | 
| +      newMinY = 0; | 
| +    } | 
| +    newTop = new CBC_ResultPoint((FX_FLOAT)top->GetX(), (FX_FLOAT)newMinY); | 
| +    if (isLeft) { | 
| +      newTopLeft = newTop; | 
| +    } else { | 
| +      newTopRight = newTop; | 
| +    } | 
| +  } | 
| +  if (missingEndRows > 0) { | 
| +    CBC_ResultPoint* bottom = isLeft ? m_bottomLeft : m_bottomRight; | 
| +    int32_t newMaxY = (int32_t)bottom->GetY() + missingEndRows; | 
| +    if (newMaxY >= m_image->GetHeight()) { | 
| +      newMaxY = m_image->GetHeight() - 1; | 
| +    } | 
| +    newBottom = | 
| +        new CBC_ResultPoint((FX_FLOAT)bottom->GetX(), (FX_FLOAT)newMaxY); | 
| +    if (isLeft) { | 
| +      newBottomLeft = newBottom; | 
| +    } else { | 
| +      newBottomRight = newBottom; | 
| +    } | 
| +  } | 
| +  calculateMinMaxValues(); | 
| +  CBC_BoundingBox* boundingBox = new CBC_BoundingBox( | 
| +      m_image, newTopLeft, newBottomLeft, newTopRight, newBottomRight, e); | 
| +  delete newTop; | 
| +  delete newBottom; | 
| +  BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | 
| +  return boundingBox; | 
| +} | 
| +void CBC_BoundingBox::setTopRight(CBC_ResultPoint topRight) { | 
| +  if (m_topRight) { | 
| +    delete m_topRight; | 
| +  } | 
| +  m_topRight = new CBC_ResultPoint(topRight.GetX(), topRight.GetY()); | 
| +  calculateMinMaxValues(); | 
| +} | 
| +void CBC_BoundingBox::setBottomRight(CBC_ResultPoint bottomRight) { | 
| +  if (m_bottomRight) { | 
| +    delete m_bottomRight; | 
| +  } | 
| +  m_bottomRight = new CBC_ResultPoint(bottomRight.GetX(), bottomRight.GetY()); | 
| +  calculateMinMaxValues(); | 
| +} | 
| +int32_t CBC_BoundingBox::getMinX() { | 
| +  return m_minX; | 
| +} | 
| +int32_t CBC_BoundingBox::getMaxX() { | 
| +  return m_maxX; | 
| +} | 
| +int32_t CBC_BoundingBox::getMinY() { | 
| +  return m_minY; | 
| +} | 
| +int32_t CBC_BoundingBox::getMaxY() { | 
| +  return m_maxY; | 
| +} | 
| +CBC_ResultPoint* CBC_BoundingBox::getTopLeft() { | 
| +  return m_topLeft; | 
| +} | 
| +CBC_ResultPoint* CBC_BoundingBox::getTopRight() { | 
| +  return m_topRight; | 
| +} | 
| +CBC_ResultPoint* CBC_BoundingBox::getBottomLeft() { | 
| +  return m_bottomLeft; | 
| +} | 
| +CBC_ResultPoint* CBC_BoundingBox::getBottomRight() { | 
| +  return m_bottomRight; | 
| +} | 
| +void CBC_BoundingBox::init(CBC_CommonBitMatrix* image, | 
| +                           CBC_ResultPoint* topLeft, | 
| +                           CBC_ResultPoint* bottomLeft, | 
| +                           CBC_ResultPoint* topRight, | 
| +                           CBC_ResultPoint* bottomRight) { | 
| +  m_topLeft = NULL; | 
| +  m_bottomLeft = NULL; | 
| +  m_topRight = NULL; | 
| +  m_bottomRight = NULL; | 
| +  m_image = image; | 
| +  if (topLeft) { | 
| +    m_topLeft = new CBC_ResultPoint(topLeft->GetX(), topLeft->GetY()); | 
| +  } | 
| +  if (bottomLeft) { | 
| +    m_bottomLeft = new CBC_ResultPoint(bottomLeft->GetX(), bottomLeft->GetY()); | 
| +  } | 
| +  if (topRight) { | 
| +    m_topRight = new CBC_ResultPoint(topRight->GetX(), topRight->GetY()); | 
| +  } | 
| +  if (bottomRight) { | 
| +    m_bottomRight = | 
| +        new CBC_ResultPoint(bottomRight->GetX(), bottomRight->GetY()); | 
| +  } | 
| +  calculateMinMaxValues(); | 
| +} | 
| +void CBC_BoundingBox::calculateMinMaxValues() { | 
| +  if (m_topLeft == NULL) { | 
| +    m_topLeft = new CBC_ResultPoint(0, m_topRight->GetY()); | 
| +    m_bottomLeft = new CBC_ResultPoint(0, m_bottomRight->GetY()); | 
| +  } else if (m_topRight == NULL) { | 
| +    m_topRight = new CBC_ResultPoint((FX_FLOAT)m_image->GetWidth() - 1, | 
| +                                     (FX_FLOAT)m_topLeft->GetY()); | 
| +    m_bottomRight = new CBC_ResultPoint((FX_FLOAT)m_image->GetWidth() - 1, | 
| +                                        (FX_FLOAT)m_bottomLeft->GetY()); | 
| +  } | 
| +  m_minX = (int32_t)(m_topLeft->GetX() < m_bottomLeft->GetX() | 
| +                         ? m_topLeft->GetX() | 
| +                         : m_bottomLeft->GetX()); | 
| +  m_maxX = (int32_t)(m_topRight->GetX() > m_bottomRight->GetX() | 
| +                         ? m_topRight->GetX() | 
| +                         : m_bottomRight->GetX()); | 
| +  m_minY = | 
| +      (int32_t)(m_topLeft->GetY() < m_topRight->GetY() ? m_topLeft->GetY() | 
| +                                                       : m_topRight->GetY()); | 
| +  m_maxY = (int32_t)(m_bottomLeft->GetY() > m_bottomRight->GetY() | 
| +                         ? m_bottomLeft->GetY() | 
| +                         : m_bottomRight->GetY()); | 
| +} | 
|  |