Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Side by Side Diff: core/fxge/dib/fx_dib_convert.cpp

Issue 2534953004: Return unique_ptrs from CFX_DIBitmap::Clone(). (Closed)
Patch Set: win again Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "core/fxcodec/fx_codec.h" 10 #include "core/fxcodec/fx_codec.h"
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 return ConvertBuffer_Rgb2Rgb32(dest_buf, dest_pitch, width, height, 774 return ConvertBuffer_Rgb2Rgb32(dest_buf, dest_pitch, width, height,
775 pSrcBitmap, src_left, src_top); 775 pSrcBitmap, src_left, src_top);
776 } 776 }
777 return false; 777 return false;
778 } 778 }
779 default: 779 default:
780 return false; 780 return false;
781 } 781 }
782 } 782 }
783 783
784 CFX_DIBitmap* CFX_DIBSource::CloneConvert(FXDIB_Format dest_format) const { 784 std::unique_ptr<CFX_DIBitmap> CFX_DIBSource::CloneConvert(
785 FXDIB_Format dest_format) const {
785 if (dest_format == GetFormat()) 786 if (dest_format == GetFormat())
786 return Clone(nullptr); 787 return Clone(nullptr);
787 788
788 std::unique_ptr<CFX_DIBitmap> pClone(new CFX_DIBitmap); 789 std::unique_ptr<CFX_DIBitmap> pClone(new CFX_DIBitmap);
npm 2016/12/05 20:37:23 nit: MakeUnique
Tom Sepez 2016/12/05 21:38:13 yes!! Thanks!! Done.
789 if (!pClone->Create(m_Width, m_Height, dest_format)) 790 if (!pClone->Create(m_Width, m_Height, dest_format))
790 return nullptr; 791 return nullptr;
791 792
792 CFX_DIBitmap* pSrcAlpha = nullptr; 793 CFX_DIBitmap* pSrcAlpha = nullptr;
793 if (HasAlpha()) { 794 if (HasAlpha()) {
794 pSrcAlpha = (GetFormat() == FXDIB_Argb) ? GetAlphaMask() : m_pAlphaMask; 795 pSrcAlpha = (GetFormat() == FXDIB_Argb) ? GetAlphaMask() : m_pAlphaMask;
795 if (!pSrcAlpha) 796 if (!pSrcAlpha)
796 return nullptr; 797 return nullptr;
797 } 798 }
798 799
(...skipping 13 matching lines...) Expand all
812 if (!ret) 813 if (!ret)
813 return nullptr; 814 return nullptr;
814 815
815 std::unique_ptr<uint32_t, FxFreeDeleter> pal_8bpp; 816 std::unique_ptr<uint32_t, FxFreeDeleter> pal_8bpp;
816 if (!ConvertBuffer(dest_format, pClone->GetBuffer(), pClone->GetPitch(), 817 if (!ConvertBuffer(dest_format, pClone->GetBuffer(), pClone->GetPitch(),
817 m_Width, m_Height, this, 0, 0, &pal_8bpp)) { 818 m_Width, m_Height, this, 0, 0, &pal_8bpp)) {
818 return nullptr; 819 return nullptr;
819 } 820 }
820 if (pal_8bpp) 821 if (pal_8bpp)
821 pClone->CopyPalette(pal_8bpp.get()); 822 pClone->CopyPalette(pal_8bpp.get());
822 return pClone.release(); 823
824 return pClone;
823 } 825 }
824 826
825 bool CFX_DIBitmap::ConvertFormat(FXDIB_Format dest_format) { 827 bool CFX_DIBitmap::ConvertFormat(FXDIB_Format dest_format) {
826 FXDIB_Format src_format = GetFormat(); 828 FXDIB_Format src_format = GetFormat();
827 if (dest_format == src_format) 829 if (dest_format == src_format)
828 return true; 830 return true;
829 831
830 if (dest_format == FXDIB_8bppMask && src_format == FXDIB_8bppRgb && 832 if (dest_format == FXDIB_8bppMask && src_format == FXDIB_8bppRgb &&
831 !m_pPalette) { 833 !m_pPalette) {
832 m_AlphaFlag = 1; 834 m_AlphaFlag = 1;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 m_pPalette = std::move(pal_8bpp); 900 m_pPalette = std::move(pal_8bpp);
899 if (!m_bExtBuf) 901 if (!m_bExtBuf)
900 FX_Free(m_pBuffer); 902 FX_Free(m_pBuffer);
901 m_bExtBuf = false; 903 m_bExtBuf = false;
902 m_pBuffer = dest_buf; 904 m_pBuffer = dest_buf;
903 m_bpp = (uint8_t)dest_format; 905 m_bpp = (uint8_t)dest_format;
904 m_AlphaFlag = (uint8_t)(dest_format >> 8); 906 m_AlphaFlag = (uint8_t)(dest_format >> 8);
905 m_Pitch = dest_pitch; 907 m_Pitch = dest_pitch;
906 return true; 908 return true;
907 } 909 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698