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

Side by Side Diff: core/src/fxcodec/jbig2/JBig2_GsidProc.cpp

Issue 1545183002: Merge to XFA: Switch from nonstd::unique_ptr to std::unique_ptr. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: xfa Created 4 years, 12 months 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 2015 PDFium Authors. All rights reserved. 1 // Copyright 2015 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 "JBig2_GsidProc.h" 7 #include "JBig2_GsidProc.h"
8 8
9 #include <memory>
10
9 #include "JBig2_BitStream.h" 11 #include "JBig2_BitStream.h"
10 #include "JBig2_GrdProc.h" 12 #include "JBig2_GrdProc.h"
11 #include "JBig2_Image.h" 13 #include "JBig2_Image.h"
12 #include "JBig2_List.h" 14 #include "JBig2_List.h"
13 #include "core/include/fxcrt/fx_basic.h" 15 #include "core/include/fxcrt/fx_basic.h"
14 #include "third_party/base/nonstd_unique_ptr.h"
15 16
16 FX_DWORD* CJBig2_GSIDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder, 17 FX_DWORD* CJBig2_GSIDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
17 JBig2ArithCtx* gbContext, 18 JBig2ArithCtx* gbContext,
18 IFX_Pause* pPause) { 19 IFX_Pause* pPause) {
19 nonstd::unique_ptr<CJBig2_GRDProc> pGRD(new CJBig2_GRDProc()); 20 std::unique_ptr<CJBig2_GRDProc> pGRD(new CJBig2_GRDProc());
20 pGRD->MMR = GSMMR; 21 pGRD->MMR = GSMMR;
21 pGRD->GBW = GSW; 22 pGRD->GBW = GSW;
22 pGRD->GBH = GSH; 23 pGRD->GBH = GSH;
23 pGRD->GBTEMPLATE = GSTEMPLATE; 24 pGRD->GBTEMPLATE = GSTEMPLATE;
24 pGRD->TPGDON = 0; 25 pGRD->TPGDON = 0;
25 pGRD->USESKIP = GSUSESKIP; 26 pGRD->USESKIP = GSUSESKIP;
26 pGRD->SKIP = GSKIP; 27 pGRD->SKIP = GSKIP;
27 if (GSTEMPLATE <= 1) { 28 if (GSTEMPLATE <= 1) {
28 pGRD->GBAT[0] = 3; 29 pGRD->GBAT[0] = 3;
29 } else { 30 } else {
(...skipping 18 matching lines...) Expand all
48 pGRD->Continue_decode(pPause); 49 pGRD->Continue_decode(pPause);
49 50
50 if (!pImage) 51 if (!pImage)
51 return nullptr; 52 return nullptr;
52 53
53 GSPLANES.set(i, pImage); 54 GSPLANES.set(i, pImage);
54 55
55 if (i < GSBPP - 1) 56 if (i < GSBPP - 1)
56 pImage->composeFrom(0, 0, GSPLANES.get(i + 1), JBIG2_COMPOSE_XOR); 57 pImage->composeFrom(0, 0, GSPLANES.get(i + 1), JBIG2_COMPOSE_XOR);
57 } 58 }
58 nonstd::unique_ptr<FX_DWORD, FxFreeDeleter> GSVALS( 59 std::unique_ptr<FX_DWORD, FxFreeDeleter> GSVALS(
59 FX_Alloc2D(FX_DWORD, GSW, GSH)); 60 FX_Alloc2D(FX_DWORD, GSW, GSH));
60 JBIG2_memset(GSVALS.get(), 0, sizeof(FX_DWORD) * GSW * GSH); 61 JBIG2_memset(GSVALS.get(), 0, sizeof(FX_DWORD) * GSW * GSH);
61 for (FX_DWORD y = 0; y < GSH; ++y) { 62 for (FX_DWORD y = 0; y < GSH; ++y) {
62 for (FX_DWORD x = 0; x < GSW; ++x) { 63 for (FX_DWORD x = 0; x < GSW; ++x) {
63 for (int32_t i = 0; i < GSBPP; ++i) { 64 for (int32_t i = 0; i < GSBPP; ++i) {
64 GSVALS.get()[y * GSW + x] |= GSPLANES.get(i)->getPixel(x, y) << i; 65 GSVALS.get()[y * GSW + x] |= GSPLANES.get(i)->getPixel(x, y) << i;
65 } 66 }
66 } 67 }
67 } 68 }
68 return GSVALS.release(); 69 return GSVALS.release();
69 } 70 }
70 71
71 FX_DWORD* CJBig2_GSIDProc::decode_MMR(CJBig2_BitStream* pStream, 72 FX_DWORD* CJBig2_GSIDProc::decode_MMR(CJBig2_BitStream* pStream,
72 IFX_Pause* pPause) { 73 IFX_Pause* pPause) {
73 nonstd::unique_ptr<CJBig2_GRDProc> pGRD(new CJBig2_GRDProc()); 74 std::unique_ptr<CJBig2_GRDProc> pGRD(new CJBig2_GRDProc());
74 pGRD->MMR = GSMMR; 75 pGRD->MMR = GSMMR;
75 pGRD->GBW = GSW; 76 pGRD->GBW = GSW;
76 pGRD->GBH = GSH; 77 pGRD->GBH = GSH;
77 78
78 nonstd::unique_ptr<CJBig2_Image*> GSPLANES(FX_Alloc(CJBig2_Image*, GSBPP)); 79 std::unique_ptr<CJBig2_Image*> GSPLANES(FX_Alloc(CJBig2_Image*, GSBPP));
79 JBIG2_memset(GSPLANES.get(), 0, sizeof(CJBig2_Image*) * GSBPP); 80 JBIG2_memset(GSPLANES.get(), 0, sizeof(CJBig2_Image*) * GSBPP);
80 FXCODEC_STATUS status = 81 FXCODEC_STATUS status =
81 pGRD->Start_decode_MMR(&GSPLANES.get()[GSBPP - 1], pStream, nullptr); 82 pGRD->Start_decode_MMR(&GSPLANES.get()[GSBPP - 1], pStream, nullptr);
82 while (status == FXCODEC_STATUS_DECODE_TOBECONTINUE) { 83 while (status == FXCODEC_STATUS_DECODE_TOBECONTINUE) {
83 pGRD->Continue_decode(pPause); 84 pGRD->Continue_decode(pPause);
84 } 85 }
85 if (!GSPLANES.get()[GSBPP - 1]) 86 if (!GSPLANES.get()[GSBPP - 1])
86 return nullptr; 87 return nullptr;
87 88
88 pStream->alignByte(); 89 pStream->alignByte();
(...skipping 10 matching lines...) Expand all
99 delete GSPLANES.get()[K]; 100 delete GSPLANES.get()[K];
100 return nullptr; 101 return nullptr;
101 } 102 }
102 } 103 }
103 pStream->alignByte(); 104 pStream->alignByte();
104 pStream->offset(3); 105 pStream->offset(3);
105 GSPLANES.get()[J]->composeFrom(0, 0, GSPLANES.get()[J + 1], 106 GSPLANES.get()[J]->composeFrom(0, 0, GSPLANES.get()[J + 1],
106 JBIG2_COMPOSE_XOR); 107 JBIG2_COMPOSE_XOR);
107 J = J - 1; 108 J = J - 1;
108 } 109 }
109 nonstd::unique_ptr<FX_DWORD> GSVALS(FX_Alloc2D(FX_DWORD, GSW, GSH)); 110 std::unique_ptr<FX_DWORD> GSVALS(FX_Alloc2D(FX_DWORD, GSW, GSH));
110 JBIG2_memset(GSVALS.get(), 0, sizeof(FX_DWORD) * GSW * GSH); 111 JBIG2_memset(GSVALS.get(), 0, sizeof(FX_DWORD) * GSW * GSH);
111 for (FX_DWORD y = 0; y < GSH; ++y) { 112 for (FX_DWORD y = 0; y < GSH; ++y) {
112 for (FX_DWORD x = 0; x < GSW; ++x) { 113 for (FX_DWORD x = 0; x < GSW; ++x) {
113 for (J = 0; J < GSBPP; ++J) { 114 for (J = 0; J < GSBPP; ++J) {
114 GSVALS.get()[y * GSW + x] |= GSPLANES.get()[J]->getPixel(x, y) << J; 115 GSVALS.get()[y * GSW + x] |= GSPLANES.get()[J]->getPixel(x, y) << J;
115 } 116 }
116 } 117 }
117 } 118 }
118 for (J = 0; J < GSBPP; ++J) { 119 for (J = 0; J < GSBPP; ++J) {
119 delete GSPLANES.get()[J]; 120 delete GSPLANES.get()[J];
120 } 121 }
121 return GSVALS.release(); 122 return GSVALS.release();
122 } 123 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698