summaryrefslogtreecommitdiff
path: root/core/fxcodec
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-08-10 00:13:37 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-08-10 00:13:37 +0000
commit4174b5ab6ac9024acb9b42acbb61d628a2a679e3 (patch)
tree0d73f6ad6d85fd7fead7fdc6ddfc647479511bcd /core/fxcodec
parentfd7cede17e027a83de2aff3bc0f5ee875271e444 (diff)
downloadpdfium-4174b5ab6ac9024acb9b42acbb61d628a2a679e3.tar.xz
Add CFX_DIBSource::GetWritableScanline().
Remove a bunch of const_cast<uint8_t*> or equivalent. This will also help when we convert to span<>, since casting spans is a nuisance. Change-Id: I330e5041cbaf33a84425fc4242a3dfacf5ca8011 Reviewed-on: https://pdfium-review.googlesource.com/39831 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fxcodec')
-rw-r--r--core/fxcodec/codec/ccodec_tiffmodule.cpp2
-rw-r--r--core/fxcodec/codec/fx_codec_progress.cpp43
2 files changed, 22 insertions, 23 deletions
diff --git a/core/fxcodec/codec/ccodec_tiffmodule.cpp b/core/fxcodec/codec/ccodec_tiffmodule.cpp
index 1a7a51af80..5f74b28cdc 100644
--- a/core/fxcodec/codec/ccodec_tiffmodule.cpp
+++ b/core/fxcodec/codec/ccodec_tiffmodule.cpp
@@ -463,7 +463,7 @@ bool CTiffContext::Decode(const RetainPtr<CFX_DIBitmap>& pDIBitmap) {
(uint32*)pDIBitmap->GetBuffer(), rotation,
1)) {
for (uint32_t row = 0; row < img_height; row++) {
- uint8_t* row_buf = (uint8_t*)pDIBitmap->GetScanline(row);
+ uint8_t* row_buf = pDIBitmap->GetWritableScanline(row);
TiffBGRA2RGBA(row_buf, img_width, 4);
}
return true;
diff --git a/core/fxcodec/codec/fx_codec_progress.cpp b/core/fxcodec/codec/fx_codec_progress.cpp
index 6b91e864ab..d1c04b9790 100644
--- a/core/fxcodec/codec/fx_codec_progress.cpp
+++ b/core/fxcodec/codec/fx_codec_progress.cpp
@@ -361,7 +361,7 @@ bool CCodec_ProgressiveDecoder::PngAskScanlineBuf(int line, uint8_t** pSrcBuf) {
if (line >= m_clipBox.top && line < m_clipBox.bottom) {
double scale_y = static_cast<double>(m_sizeY) / m_clipBox.Height();
int32_t row = (int32_t)((line - m_clipBox.top) * scale_y) + m_startY;
- uint8_t* src_scan = (uint8_t*)pDIBitmap->GetScanline(row);
+ const uint8_t* src_scan = pDIBitmap->GetScanline(row);
uint8_t* dest_scan = m_pDecodeBuf;
*pSrcBuf = m_pDecodeBuf;
int32_t src_Bpp = pDIBitmap->GetBPP() >> 3;
@@ -522,7 +522,7 @@ bool CCodec_ProgressiveDecoder::GifInputRecordPositionBuf(
FX_ARGB argb = m_pSrcPalette[pal_index];
for (int row = 0; row < sizeY; row++) {
uint8_t* pScanline =
- (uint8_t*)pDevice->GetScanline(row + startY) + startX * Bpp;
+ pDevice->GetWritableScanline(row + startY) + startX * Bpp;
switch (m_TransMethod) {
case 3: {
uint8_t gray =
@@ -600,12 +600,11 @@ void CCodec_ProgressiveDecoder::GifReadScanline(int32_t row_num,
int dest_Bpp = pDIBitmap->GetBPP() >> 3;
uint32_t dest_ScanOffet = m_startX * dest_Bpp;
if (dest_row + (int)scale_y >= dest_bottom - 1) {
- uint8_t* scan_src =
- (uint8_t*)pDIBitmap->GetScanline(dest_row) + dest_ScanOffet;
+ const uint8_t* scan_src = pDIBitmap->GetScanline(dest_row) + dest_ScanOffet;
int cur_row = dest_row;
while (++cur_row < dest_bottom) {
uint8_t* scan_des =
- (uint8_t*)pDIBitmap->GetScanline(cur_row) + dest_ScanOffet;
+ pDIBitmap->GetWritableScanline(cur_row) + dest_ScanOffet;
uint32_t size = m_sizeX * dest_Bpp;
memmove(scan_des, scan_src, size);
}
@@ -667,11 +666,11 @@ void CCodec_ProgressiveDecoder::ResampleVertBT(
check_dest_row_1 += pdfium::base::checked_cast<int>(scale_y);
int dest_row_1 = check_dest_row_1.ValueOrDie();
if (dest_row_1 >= dest_bottom - 1) {
- uint8_t* scan_src =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
+ const uint8_t* scan_src =
+ pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
while (++dest_row < dest_bottom) {
uint8_t* scan_des =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
+ pDeviceBitmap->GetWritableScanline(dest_row) + dest_ScanOffet;
uint32_t size = m_sizeX * dest_Bpp;
memmove(scan_des, scan_src, size);
}
@@ -679,7 +678,7 @@ void CCodec_ProgressiveDecoder::ResampleVertBT(
}
for (; dest_row_1 > dest_row; dest_row_1--) {
uint8_t* scan_des =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row_1) + dest_ScanOffet;
+ pDeviceBitmap->GetWritableScanline(dest_row_1) + dest_ScanOffet;
PixelWeight* pWeight = m_WeightVert.GetPixelWeight(dest_row_1 - dest_top);
const uint8_t* scan_src1 =
pDeviceBitmap->GetScanline(pWeight->m_SrcStart + dest_top) +
@@ -1089,7 +1088,7 @@ void CCodec_ProgressiveDecoder::GifDoubleLineResampleVert(
dest_row_1 = std::max(dest_row_1, dest_top);
for (; dest_row_1 < dest_row; dest_row_1++) {
uint8_t* scan_des =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row_1) + dest_ScanOffet;
+ pDeviceBitmap->GetWritableScanline(dest_row_1) + dest_ScanOffet;
PixelWeight* pWeight = m_WeightVert.GetPixelWeight(dest_row_1 - dest_top);
const uint8_t* scan_src1 =
pDeviceBitmap->GetScanline(pWeight->m_SrcStart + dest_top) +
@@ -1339,7 +1338,7 @@ void CCodec_ProgressiveDecoder::PngOneOneMapResampleHorz(
int32_t dest_line,
uint8_t* src_scan,
FXCodec_Format src_format) {
- uint8_t* dest_scan = (uint8_t*)pDeviceBitmap->GetScanline(dest_line);
+ uint8_t* dest_scan = pDeviceBitmap->GetWritableScanline(dest_line);
int32_t src_Bpp = (m_SrcFormat & 0xff) >> 3;
int32_t dest_Bpp = pDeviceBitmap->GetBPP() >> 3;
int32_t src_left = m_clipBox.left;
@@ -1667,8 +1666,8 @@ FXCODEC_STATUS CCodec_ProgressiveDecoder::TiffContinueDecode() {
case FXDIB_8bppRgb:
case FXDIB_8bppMask: {
for (int32_t row = 0; row < pClipBitmap->GetHeight(); row++) {
- uint8_t* src_line = (uint8_t*)pClipBitmap->GetScanline(row);
- uint8_t* dest_line = (uint8_t*)pFormatBitmap->GetScanline(row);
+ const uint8_t* src_line = pClipBitmap->GetScanline(row);
+ uint8_t* dest_line = pFormatBitmap->GetWritableScanline(row);
for (int32_t col = 0; col < pClipBitmap->GetWidth(); col++) {
uint8_t _a = 255 - src_line[3];
uint8_t b = (src_line[0] * src_line[3] + 0xFF * _a) / 255;
@@ -1683,8 +1682,8 @@ FXCODEC_STATUS CCodec_ProgressiveDecoder::TiffContinueDecode() {
case FXDIB_Rgb32: {
int32_t desBpp = (m_pDeviceBitmap->GetFormat() == FXDIB_Rgb) ? 3 : 4;
for (int32_t row = 0; row < pClipBitmap->GetHeight(); row++) {
- uint8_t* src_line = (uint8_t*)pClipBitmap->GetScanline(row);
- uint8_t* dest_line = (uint8_t*)pFormatBitmap->GetScanline(row);
+ const uint8_t* src_line = pClipBitmap->GetScanline(row);
+ uint8_t* dest_line = pFormatBitmap->GetWritableScanline(row);
for (int32_t col = 0; col < pClipBitmap->GetWidth(); col++) {
uint8_t _a = 255 - src_line[3];
uint8_t b = (src_line[0] * src_line[3] + 0xFF * _a) / 255;
@@ -2193,11 +2192,11 @@ void CCodec_ProgressiveDecoder::ResampleVert(
if (dest_row_1 < dest_top) {
int dest_bottom = dest_top + m_sizeY;
if (dest_row + (int)scale_y >= dest_bottom - 1) {
- uint8_t* scan_src =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
+ const uint8_t* scan_src =
+ pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
while (++dest_row < dest_bottom) {
uint8_t* scan_des =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
+ pDeviceBitmap->GetWritableScanline(dest_row) + dest_ScanOffet;
uint32_t size = m_sizeX * dest_Bpp;
memmove(scan_des, scan_src, size);
}
@@ -2206,7 +2205,7 @@ void CCodec_ProgressiveDecoder::ResampleVert(
}
for (; dest_row_1 < dest_row; dest_row_1++) {
uint8_t* scan_des =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row_1) + dest_ScanOffet;
+ pDeviceBitmap->GetWritableScanline(dest_row_1) + dest_ScanOffet;
PixelWeight* pWeight = m_WeightVert.GetPixelWeight(dest_row_1 - dest_top);
const uint8_t* scan_src1 =
pDeviceBitmap->GetScanline(pWeight->m_SrcStart + dest_top) +
@@ -2273,11 +2272,11 @@ void CCodec_ProgressiveDecoder::ResampleVert(
}
int dest_bottom = dest_top + m_sizeY;
if (dest_row + (int)scale_y >= dest_bottom - 1) {
- uint8_t* scan_src =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
+ const uint8_t* scan_src =
+ pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
while (++dest_row < dest_bottom) {
uint8_t* scan_des =
- (uint8_t*)pDeviceBitmap->GetScanline(dest_row) + dest_ScanOffet;
+ pDeviceBitmap->GetWritableScanline(dest_row) + dest_ScanOffet;
uint32_t size = m_sizeX * dest_Bpp;
memmove(scan_des, scan_src, size);
}