ICNSTranslator: Fix same expression used in consecutive assignments
Fix same expression (imageTypeInfo.iconWidth) is used in consecutive assignments of 'iconWidth' and 'iconHeight' at line 191, 192. Pointed out by cppcheck. Change-Id: I251a4b8e6c83f86aad4fa0030ebc362f3b97fb0e Reviewed-on: https://review.haiku-os.org/c/haiku/+/3499 Reviewed-by: Jérôme Duval <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
c3427db750
commit
37cd311852
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2012, Gerasim Troeglazov, [email protected]. All rights reserved.
|
* Copyright 2012, Gerasim Troeglazov, [email protected]. All rights reserved.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ICNSLoader.h"
|
#include "ICNSLoader.h"
|
||||||
#include "BaseTranslator.h"
|
#include "BaseTranslator.h"
|
||||||
@@ -24,14 +24,14 @@ ICNSFormat(float width, float height, color_space colors)
|
|||||||
{
|
{
|
||||||
int imageWidth = (int)ceil(width);
|
int imageWidth = (int)ceil(width);
|
||||||
int imageHeight = (int)ceil(height);
|
int imageHeight = (int)ceil(height);
|
||||||
|
|
||||||
if (imageWidth != imageHeight)
|
if (imageWidth != imageHeight)
|
||||||
return ICNS_NULL_TYPE;
|
return ICNS_NULL_TYPE;
|
||||||
|
|
||||||
//other colors depth not supported now
|
//other colors depth not supported now
|
||||||
if (colors != B_RGB32 && colors != B_RGBA32)
|
if (colors != B_RGB32 && colors != B_RGBA32)
|
||||||
return ICNS_NULL_TYPE;
|
return ICNS_NULL_TYPE;
|
||||||
|
|
||||||
switch (imageWidth) {
|
switch (imageWidth) {
|
||||||
case 16:
|
case 16:
|
||||||
return ICNS_16x16_32BIT_DATA;
|
return ICNS_16x16_32BIT_DATA;
|
||||||
@@ -56,21 +56,21 @@ ICNSLoader::ICNSLoader(BPositionIO *stream)
|
|||||||
{
|
{
|
||||||
fLoaded = false;
|
fLoaded = false;
|
||||||
fIconsCount = 0;
|
fIconsCount = 0;
|
||||||
|
|
||||||
stream->Seek(0, SEEK_END);
|
stream->Seek(0, SEEK_END);
|
||||||
fStreamSize = stream->Position();
|
fStreamSize = stream->Position();
|
||||||
stream->Seek(0, SEEK_SET);
|
stream->Seek(0, SEEK_SET);
|
||||||
|
|
||||||
if (fStreamSize <= 0)
|
if (fStreamSize <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uint8* icnsDataBuffer = new uint8[fStreamSize];
|
uint8* icnsDataBuffer = new uint8[fStreamSize];
|
||||||
size_t readedBytes = stream->Read(icnsDataBuffer,fStreamSize);
|
size_t readedBytes = stream->Read(icnsDataBuffer,fStreamSize);
|
||||||
|
|
||||||
fIconFamily = NULL;
|
fIconFamily = NULL;
|
||||||
int status = icns_import_family_data(readedBytes, icnsDataBuffer,
|
int status = icns_import_family_data(readedBytes, icnsDataBuffer,
|
||||||
&fIconFamily);
|
&fIconFamily);
|
||||||
|
|
||||||
if (status != 0) {
|
if (status != 0) {
|
||||||
delete[] icnsDataBuffer;
|
delete[] icnsDataBuffer;
|
||||||
return;
|
return;
|
||||||
@@ -91,12 +91,12 @@ ICNSLoader::ICNSLoader(BPositionIO *stream)
|
|||||||
*newTypeItem = iconElement.elementType;
|
*newTypeItem = iconElement.elementType;
|
||||||
fFormatList.AddItem(newTypeItem);
|
fFormatList.AddItem(newTypeItem);
|
||||||
fIconsCount++;
|
fIconsCount++;
|
||||||
}
|
}
|
||||||
dataOffset += iconElement.elementSize;
|
dataOffset += iconElement.elementSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
fFormatList.SortItems(compareTypes);
|
fFormatList.SortItems(compareTypes);
|
||||||
|
|
||||||
delete[] icnsDataBuffer;
|
delete[] icnsDataBuffer;
|
||||||
|
|
||||||
fLoaded = true;
|
fLoaded = true;
|
||||||
@@ -120,8 +120,8 @@ ICNSLoader::IsLoaded(void)
|
|||||||
{
|
{
|
||||||
return fLoaded;
|
return fLoaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ICNSLoader::IconsCount(void)
|
ICNSLoader::IconsCount(void)
|
||||||
{
|
{
|
||||||
@@ -134,18 +134,18 @@ ICNSLoader::GetIcon(BPositionIO *target, int index)
|
|||||||
{
|
{
|
||||||
if (index < 1 || index > fIconsCount || !fLoaded)
|
if (index < 1 || index > fIconsCount || !fLoaded)
|
||||||
return B_NO_TRANSLATOR;
|
return B_NO_TRANSLATOR;
|
||||||
|
|
||||||
icns_image_t iconImage;
|
icns_image_t iconImage;
|
||||||
memset(&iconImage, 0, sizeof(icns_image_t));
|
memset(&iconImage, 0, sizeof(icns_image_t));
|
||||||
|
|
||||||
icns_type_t typeItem = *((icns_type_t*)fFormatList.ItemAt(index - 1));
|
icns_type_t typeItem = *((icns_type_t*)fFormatList.ItemAt(index - 1));
|
||||||
int status = icns_get_image32_with_mask_from_family(fIconFamily,
|
int status = icns_get_image32_with_mask_from_family(fIconFamily,
|
||||||
typeItem, &iconImage);
|
typeItem, &iconImage);
|
||||||
|
|
||||||
if (status != 0)
|
if (status != 0)
|
||||||
return B_NO_TRANSLATOR;
|
return B_NO_TRANSLATOR;
|
||||||
|
|
||||||
TranslatorBitmap bitsHeader;
|
TranslatorBitmap bitsHeader;
|
||||||
bitsHeader.magic = B_TRANSLATOR_BITMAP;
|
bitsHeader.magic = B_TRANSLATOR_BITMAP;
|
||||||
bitsHeader.bounds.left = 0;
|
bitsHeader.bounds.left = 0;
|
||||||
bitsHeader.bounds.top = 0;
|
bitsHeader.bounds.top = 0;
|
||||||
@@ -159,11 +159,11 @@ ICNSLoader::GetIcon(BPositionIO *target, int index)
|
|||||||
icns_free_image(&iconImage);
|
icns_free_image(&iconImage);
|
||||||
return B_NO_TRANSLATOR;
|
return B_NO_TRANSLATOR;
|
||||||
}
|
}
|
||||||
target->Write(&bitsHeader, sizeof(TranslatorBitmap));
|
target->Write(&bitsHeader, sizeof(TranslatorBitmap));
|
||||||
|
|
||||||
uint8 *rowBuff = new uint8[iconImage.imageWidth * sizeof(uint32)];
|
uint8 *rowBuff = new uint8[iconImage.imageWidth * sizeof(uint32)];
|
||||||
for (uint32 i = 0; i < iconImage.imageHeight; i++) {
|
for (uint32 i = 0; i < iconImage.imageHeight; i++) {
|
||||||
uint8 *rowData = iconImage.imageData
|
uint8 *rowData = iconImage.imageData
|
||||||
+ (i * iconImage.imageWidth * sizeof(uint32));
|
+ (i * iconImage.imageWidth * sizeof(uint32));
|
||||||
uint8 *rowBuffPtr = rowBuff;
|
uint8 *rowBuffPtr = rowBuff;
|
||||||
for (uint32 j=0; j < iconImage.imageWidth; j++) {
|
for (uint32 j=0; j < iconImage.imageWidth; j++) {
|
||||||
@@ -175,25 +175,25 @@ ICNSLoader::GetIcon(BPositionIO *target, int index)
|
|||||||
rowData += sizeof(uint32);
|
rowData += sizeof(uint32);
|
||||||
}
|
}
|
||||||
target->Write(rowBuff, iconImage.imageWidth * sizeof(uint32));
|
target->Write(rowBuff, iconImage.imageWidth * sizeof(uint32));
|
||||||
}
|
}
|
||||||
delete[] rowBuff;
|
delete[] rowBuff;
|
||||||
icns_free_image(&iconImage);
|
icns_free_image(&iconImage);
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
||||||
{
|
{
|
||||||
fCreated = false;
|
fCreated = false;
|
||||||
|
|
||||||
icns_icon_info_t imageTypeInfo = icns_get_image_info_for_type(type);
|
icns_icon_info_t imageTypeInfo = icns_get_image_info_for_type(type);
|
||||||
int iconWidth = imageTypeInfo.iconWidth;
|
int iconWidth = imageTypeInfo.iconWidth;
|
||||||
int iconHeight = imageTypeInfo.iconWidth;
|
int iconHeight = imageTypeInfo.iconHeight;
|
||||||
int bpp = 32;
|
int bpp = 32;
|
||||||
|
|
||||||
uint8 *bits = new uint8[iconWidth * iconHeight * sizeof(uint32)];
|
uint8 *bits = new uint8[iconWidth * iconHeight * sizeof(uint32)];
|
||||||
|
|
||||||
uint8 *rowPtr = bits;
|
uint8 *rowPtr = bits;
|
||||||
for (int i = 0; i < iconHeight; i++) {
|
for (int i = 0; i < iconHeight; i++) {
|
||||||
stream->Read(rowPtr, rowBytes);
|
stream->Read(rowPtr, rowBytes);
|
||||||
@@ -206,16 +206,16 @@ ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
|||||||
}
|
}
|
||||||
rowPtr += iconWidth * sizeof(uint32);
|
rowPtr += iconWidth * sizeof(uint32);
|
||||||
}
|
}
|
||||||
|
|
||||||
icns_create_family(&fIconFamily);
|
icns_create_family(&fIconFamily);
|
||||||
|
|
||||||
icns_image_t icnsImage;
|
icns_image_t icnsImage;
|
||||||
icnsImage.imageWidth = iconWidth;
|
icnsImage.imageWidth = iconWidth;
|
||||||
icnsImage.imageHeight = iconHeight;
|
icnsImage.imageHeight = iconHeight;
|
||||||
icnsImage.imageChannels = 4;
|
icnsImage.imageChannels = 4;
|
||||||
icnsImage.imagePixelDepth = 8;
|
icnsImage.imagePixelDepth = 8;
|
||||||
icnsImage.imageDataSize = iconWidth * iconHeight * 4;
|
icnsImage.imageDataSize = iconWidth * iconHeight * 4;
|
||||||
icnsImage.imageData = bits;
|
icnsImage.imageData = bits;
|
||||||
|
|
||||||
icns_icon_info_t iconInfo;
|
icns_icon_info_t iconInfo;
|
||||||
iconInfo.isImage = 1;
|
iconInfo.isImage = 1;
|
||||||
@@ -226,7 +226,7 @@ ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
|||||||
iconInfo.iconPixelDepth = bpp / iconInfo.iconChannels;
|
iconInfo.iconPixelDepth = bpp / iconInfo.iconChannels;
|
||||||
|
|
||||||
icns_type_t iconType = icns_get_type_from_image_info(iconInfo);
|
icns_type_t iconType = icns_get_type_from_image_info(iconInfo);
|
||||||
|
|
||||||
if (iconType == ICNS_NULL_TYPE) {
|
if (iconType == ICNS_NULL_TYPE) {
|
||||||
delete[] bits;
|
delete[] bits;
|
||||||
free(fIconFamily);
|
free(fIconFamily);
|
||||||
@@ -237,7 +237,7 @@ ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
|||||||
icns_element_t *iconElement = NULL;
|
icns_element_t *iconElement = NULL;
|
||||||
int icnsErr = icns_new_element_from_image(&icnsImage, iconType,
|
int icnsErr = icns_new_element_from_image(&icnsImage, iconType,
|
||||||
&iconElement);
|
&iconElement);
|
||||||
|
|
||||||
if (iconElement != NULL) {
|
if (iconElement != NULL) {
|
||||||
if (icnsErr == ICNS_STATUS_OK) {
|
if (icnsErr == ICNS_STATUS_OK) {
|
||||||
icns_set_element_in_family(&fIconFamily, iconElement);
|
icns_set_element_in_family(&fIconFamily, iconElement);
|
||||||
@@ -245,27 +245,27 @@ ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
|||||||
}
|
}
|
||||||
free(iconElement);
|
free(iconElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iconType != ICNS_1024x1024_32BIT_ARGB_DATA
|
if (iconType != ICNS_1024x1024_32BIT_ARGB_DATA
|
||||||
&& iconType != ICNS_512x512_32BIT_ARGB_DATA
|
&& iconType != ICNS_512x512_32BIT_ARGB_DATA
|
||||||
&& iconType != ICNS_256x256_32BIT_ARGB_DATA) {
|
&& iconType != ICNS_256x256_32BIT_ARGB_DATA) {
|
||||||
icns_type_t maskType =
|
icns_type_t maskType =
|
||||||
icns_get_mask_type_for_icon_type(iconType);
|
icns_get_mask_type_for_icon_type(iconType);
|
||||||
|
|
||||||
icns_image_t icnsMask;
|
icns_image_t icnsMask;
|
||||||
icns_init_image_for_type(maskType, &icnsMask);
|
icns_init_image_for_type(maskType, &icnsMask);
|
||||||
|
|
||||||
uint32 iconDataOffset = 0;
|
uint32 iconDataOffset = 0;
|
||||||
uint32 maskDataOffset = 0;
|
uint32 maskDataOffset = 0;
|
||||||
|
|
||||||
while (iconDataOffset < icnsImage.imageDataSize
|
while (iconDataOffset < icnsImage.imageDataSize
|
||||||
&& maskDataOffset < icnsMask.imageDataSize) {
|
&& maskDataOffset < icnsMask.imageDataSize) {
|
||||||
icnsMask.imageData[maskDataOffset] =
|
icnsMask.imageData[maskDataOffset] =
|
||||||
icnsImage.imageData[iconDataOffset + 3];
|
icnsImage.imageData[iconDataOffset + 3];
|
||||||
iconDataOffset += 4;
|
iconDataOffset += 4;
|
||||||
maskDataOffset += 1;
|
maskDataOffset += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
icns_element_t *maskElement = NULL;
|
icns_element_t *maskElement = NULL;
|
||||||
icnsErr = icns_new_element_from_mask(&icnsMask, maskType,
|
icnsErr = icns_new_element_from_mask(&icnsMask, maskType,
|
||||||
&maskElement);
|
&maskElement);
|
||||||
@@ -277,15 +277,15 @@ ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
|||||||
} else
|
} else
|
||||||
fCreated = false;
|
fCreated = false;
|
||||||
free(maskElement);
|
free(maskElement);
|
||||||
}
|
}
|
||||||
icns_free_image(&icnsMask);
|
icns_free_image(&icnsMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fCreated) {
|
if (!fCreated) {
|
||||||
free(fIconFamily);
|
free(fIconFamily);
|
||||||
fIconFamily = NULL;
|
fIconFamily = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete[] bits;
|
delete[] bits;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@ ICNSSaver::ICNSSaver(BPositionIO *stream, uint32 rowBytes, icns_type_t type)
|
|||||||
ICNSSaver::~ICNSSaver()
|
ICNSSaver::~ICNSSaver()
|
||||||
{
|
{
|
||||||
if (fIconFamily != NULL)
|
if (fIconFamily != NULL)
|
||||||
free(fIconFamily);
|
free(fIconFamily);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user