Fix several warnings in MSVC, clang, and gcc

This commit is contained in:
David Capello 2015-03-05 15:19:00 -03:00
parent 5c1f2a55a5
commit b23194dfae
37 changed files with 152 additions and 171 deletions

View File

@ -119,7 +119,7 @@ Color Color::fromString(const std::string& str)
if (str.find("rgb{") == 0 ||
str.find("hsv{") == 0) {
int c = 0, table[3] = { 0, 0, 0 };
int i = 4, j;
std::string::size_type i = 4, j;
while ((j = str.find_first_of(",}", i)) != std::string::npos) {
std::string element = str.substr(i, j - i);

View File

@ -354,7 +354,7 @@ void PaletteEntryEditor::setColor(const app::Color& color)
else if (j-i+1 == i2-i) {
m_entryLabel.setTextf(" Range: %d-%d", i, j);
}
else if (i == entries.size()) {
else if (i == int(entries.size())) {
m_entryLabel.setText(" No Entry");
}
else {

View File

@ -47,7 +47,6 @@ bool RemoveFrameTagCommand::onEnabled(Context* context)
void RemoveFrameTagCommand::onExecute(Context* context)
{
ContextWriter writer(context);
Document* document(writer.document());
Sprite* sprite(writer.sprite());
frame_t frame = writer.frame();

View File

@ -137,7 +137,7 @@ void SpritePropertiesCommand::onExecute(Context* context)
// If the transparent color index has changed, we update the
// property in the sprite.
int index = color_button->getColor().getIndex();
if (index != sprite->transparentColor()) {
if (color_t(index) != sprite->transparentColor()) {
Transaction transaction(writer.context(), "Set Transparent Color");
DocumentApi api = writer.document()->getApi(transaction);
api.setSpriteTransparentColor(sprite, index);

View File

@ -75,8 +75,10 @@ protected:
DocumentApi api = m_writer.document()->getApi(transaction);
int cels_count = 0;
for (Cel* cel : m_sprite->uniqueCels())
for (Cel* cel : m_sprite->uniqueCels()) { // TODO add size() member function to CelsRange
(void)cel;
++cels_count;
}
// For each cel...
int progress = 0;

View File

@ -56,7 +56,7 @@ void ConvolutionMatrixStock::reloadStock()
"convmatr.gen",
"convmatr.def", NULL };
char *s, buf[256], leavings[4096];
int i, c, x, y, w, h, div, bias;
int i, x, y, w, h, div, bias;
SharedPtr<ConvolutionMatrix> matrix;
std::string name;
@ -109,7 +109,6 @@ void ConvolutionMatrixStock::reloadStock()
if (*buf != '{')
break;
c = 0;
div = 0;
for (y=0; y<h; ++y) {
for (x=0; x<w; ++x) {

View File

@ -302,7 +302,7 @@ void DocumentExporter::captureSamples(Samples& samples)
renderSample(sample, sampleRender);
gfx::Rect frameBounds;
doc::color_t refColor;
doc::color_t refColor = 0;
if (m_trimCels)
refColor = get_pixel(sampleRender, 0, 0);

View File

@ -162,8 +162,8 @@ static DocumentRange drop_range_op(
case DocumentRange::kFrames:
{
frame_t srcFrameBegin, srcFrameStep, srcFrameEnd;
frame_t dstFrameBegin, dstFrameStep;
frame_t srcFrameBegin = 0, srcFrameStep, srcFrameEnd = 0;
frame_t dstFrameBegin = 0, dstFrameStep;
switch (op) {

View File

@ -1299,6 +1299,7 @@ static void ase_file_read_frame_tags_chunk(FILE* f, FrameTags* frameTags)
FrameTag* tag = new FrameTag(from, to);
tag->setColor(doc::rgba(r, g, b, 255));
tag->setName(name);
tag->setAniDir((AniDir)aniDir);
frameTags->add(tag);
}
}

View File

@ -116,7 +116,7 @@ void fli_write_header(FILE *f, s_fli_header *fli_header)
fli_write_short(f, fli_header->flags); /* 14 */
if (fli_header->magic == HEADER_FLI) {
/* FLI saves speed in 1/70s */
fli_write_short(f, fli_header->speed / 14); /* 16 */
fli_write_short(f, (unsigned short)fli_header->speed / 14); /* 16 */
} else {
if (fli_header->magic == HEADER_FLC) {
/* FLC saves speed in 1/1000s */
@ -375,8 +375,8 @@ int fli_write_color_2(FILE *f, s_fli_header *fli_header, unsigned char *old_cmap
}
if (cnt_col>0) {
num_packets++;
fli_write_char(f, cnt_skip);
fli_write_char(f, cnt_col);
fli_write_char(f, (unsigned char)cnt_skip);
fli_write_char(f, (unsigned char)cnt_col);
while (cnt_col>0) {
fli_write_char(f, cmap[col_start++]);
fli_write_char(f, cmap[col_start++]);
@ -510,7 +510,7 @@ void fli_write_brun(FILE *f, s_fli_header *fli_header, unsigned char *framebuf)
tc=0;
}
bc++;
fli_write_char(f, pc);
fli_write_char(f, (unsigned char)pc);
fli_write_char(f, linebuf[xc]);
t1=xc+pc;
} else {
@ -533,7 +533,7 @@ void fli_write_brun(FILE *f, s_fli_header *fli_header, unsigned char *framebuf)
}
lineend=ftell(f);
fseek(f, linepos, SEEK_SET);
fli_write_char(f, bc);
fli_write_char(f, (unsigned char)bc);
fseek(f, lineend, SEEK_SET);
}
@ -626,7 +626,7 @@ void fli_write_lc(FILE *f, s_fli_header *fli_header, unsigned char *old_framebuf
while ((linebuf[xc]==old_linebuf[xc]) && (xc<fli_header->width) && (sc<255)) {
xc++; sc++;
}
fli_write_char(f, sc);
fli_write_char(f, (unsigned char)sc);
cc=1;
while ((linebuf[xc]==linebuf[xc+cc]) && ((xc+cc)<fli_header->width) && (cc<120)) {
cc++;
@ -650,14 +650,14 @@ void fli_write_lc(FILE *f, s_fli_header *fli_header, unsigned char *old_framebuf
tc++;
} while ((tc<120) && (cc<9) && (sc<4) && ((xc+tc)<fli_header->width));
bc++;
fli_write_char(f, tc);
fli_write_char(f, (unsigned char)tc);
fwrite(linebuf+xc, tc, 1, f);
xc+=tc;
}
}
lineend=ftell(f);
fseek(f, linepos, SEEK_SET);
fli_write_char(f, bc);
fli_write_char(f, (unsigned char)bc);
fseek(f, lineend, SEEK_SET);
}
@ -719,7 +719,7 @@ void fli_read_lc_2(FILE *f, s_fli_header *fli_header, unsigned char *old_framebu
xc+=ps << 1;
}
}
if (lpf) pos[xc]=lpn;
if (lpf) pos[xc]=(unsigned char)lpn;
yc++;
}
}

View File

@ -69,7 +69,9 @@ bool FliFormat::onLoad(FileOp* fop)
int c, w, h;
frame_t frpos_in;
frame_t frpos_out;
#ifdef USE_LINK
int index = 0; // TODO this is used to create linked cels
#endif
// Open the file to read in binary mode
FileHandle f(open_file_with_exception(fop->filename, "rb"));

View File

@ -192,8 +192,8 @@ bool TgaFormat::onLoad(FileOp* fop)
unsigned char image_id[256], image_palette[256][3], rgb[4];
unsigned char id_length, palette_type, image_type, palette_entry_size;
unsigned char bpp, descriptor_bits;
short unsigned int first_color, palette_colors;
short unsigned int left, top, image_width, image_height;
short unsigned int palette_colors;
short unsigned int image_width, image_height;
unsigned int c, i, x, y, yc;
int compressed;
@ -202,11 +202,11 @@ bool TgaFormat::onLoad(FileOp* fop)
id_length = fgetc(f);
palette_type = fgetc(f);
image_type = fgetc(f);
first_color = fgetw(f);
fgetw(f); // first_color
palette_colors = fgetw(f);
palette_entry_size = fgetc(f);
left = fgetw(f);
top = fgetw(f);
fgetw(f); // "left" field
fgetw(f); // "top" field
image_width = fgetw(f);
image_height = fgetw(f);
bpp = fgetc(f);

View File

@ -19,18 +19,18 @@ TEST(IniFile, Basic)
set_config_file("_test.ini");
EXPECT_EQ(false, get_config_bool("A", "a", false));
EXPECT_EQ(true, get_config_bool("A", "b", true));
EXPECT_EQ(0, get_config_bool("B", "a", 0));
EXPECT_EQ(1, get_config_bool("B", "b", 1));
EXPECT_FALSE(get_config_bool("A", "a", false));
EXPECT_TRUE(get_config_bool("A", "b", true));
EXPECT_FALSE(get_config_bool("B", "a", 0));
EXPECT_TRUE(get_config_bool("B", "b", 1));
set_config_bool("A", "a", true);
set_config_bool("A", "b", false);
set_config_int("B", "a", 2);
set_config_int("B", "b", 3);
EXPECT_EQ(true, get_config_bool("A", "a", false));
EXPECT_EQ(false, get_config_bool("A", "b", true));
EXPECT_TRUE(get_config_bool("A", "a", false));
EXPECT_FALSE(get_config_bool("A", "b", true));
EXPECT_EQ(2, get_config_int("B", "a", 0));
EXPECT_EQ(3, get_config_int("B", "b", 1));
}

View File

@ -419,8 +419,6 @@ void StandbyState::transformSelection(Editor* editor, MouseMessage* msg, HandleT
base::UniquePtr<Image> tmpImage(NewImageFromMask(editor->getDocumentLocation()));
gfx::Point origin = document->mask()->bounds().getOrigin();
int opacity = 255;
Sprite* sprite = editor->sprite();
Layer* layer = editor->layer();
PixelsMovementPtr pixelsMovement(
new PixelsMovement(UIContext::instance(),
editor->getDocumentLocation(),

View File

@ -483,7 +483,6 @@ void FileSelector::updateLocation()
IFileItem* fileItem = currentFolder;
std::list<IFileItem*> locations;
int selected_index = -1;
int newItem;
while (fileItem != NULL) {
locations.push_front(fileItem);
@ -518,8 +517,8 @@ void FileSelector::updateLocation()
// Add paths from recent files list
{
newItem = m_location->addItem("");
newItem = m_location->addItem("-------- Recent Paths --------");
m_location->addItem("");
m_location->addItem("-------- Recent Paths --------");
RecentFiles::const_iterator it = App::instance()->getRecentFiles()->paths_begin();
RecentFiles::const_iterator end = App::instance()->getRecentFiles()->paths_end();

View File

@ -182,8 +182,8 @@ protected:
};
NewsListBox::NewsListBox()
: m_loader(nullptr)
, m_timer(250, this)
: m_timer(250, this)
, m_loader(nullptr)
{
m_timer.Tick.connect(&NewsListBox::onTick, this);
@ -266,8 +266,6 @@ void NewsListBox::parseFile(const std::string& filename)
TiXmlElement* titleXml = itemXml->FirstChildElement("title");
TiXmlElement* descXml = itemXml->FirstChildElement("description");
TiXmlElement* linkXml = itemXml->FirstChildElement("link");
TiXmlElement* guidXml = itemXml->FirstChildElement("guid");
TiXmlElement* pubDateXml = itemXml->FirstChildElement("pubDate");
std::string link = linkXml->GetText();
std::string title = titleXml->GetText();

View File

@ -357,7 +357,6 @@ void Tabs::onPaint(PaintEvent& ev)
int startX = m_border*guiscale();
double t = double(m_ani_t)/double(m_ani_T);
Tab* prevTab = nullptr;
// For each tab...
int i = 0;
@ -375,7 +374,6 @@ void Tabs::onPaint(PaintEvent& ev)
drawTab(g, box, tab, 0, (tab == m_hot), false);
box.x = box.x2();
prevTab = tab;
++i;
}
@ -449,8 +447,6 @@ void Tabs::drawTab(Graphics* g, const gfx::Rect& _box, Tab* tab, int dy,
box.w = ui::guiscale()*8;
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
gfx::Color text_color;
gfx::Color face_color;
int clipTextRightSide;
gfx::Rect closeBox = getTabCloseButtonBounds(tab, box);
@ -461,17 +457,6 @@ void Tabs::drawTab(Graphics* g, const gfx::Rect& _box, Tab* tab, int dy,
clipTextRightSide = closeBox.w;
}
// Selected
if (selected) {
text_color = theme->colors.tabActiveText();
face_color = theme->colors.tabActiveFace();
}
// Non-selected
else {
text_color = theme->colors.tabNormalText();
face_color = theme->colors.tabNormalFace();
}
skin::Style::State state;
if (selected) state += skin::Style::active();
if (hover) state += skin::Style::hover();
@ -590,7 +575,6 @@ void Tabs::calculateHot()
if (m_isDragging)
return;
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
gfx::Rect rect = getBounds();
gfx::Rect box(rect.x+m_border*guiscale(), rect.y, 0, rect.h-1);
gfx::Point mousePos = ui::get_mouse_position();

View File

@ -19,7 +19,7 @@ namespace app {
using namespace doc;
bool get_shrink_rect(int *x1, int *y1, int *x2, int *y2,
Image *image, int refpixel)
Image *image, color_t refpixel)
{
#define SHRINK_SIDE(u_begin, u_op, u_final, u_add, \
v_begin, v_op, v_final, v_add, U, V, var) \

View File

@ -9,6 +9,8 @@
#define APP_UTIL_AUTOCROP_H_INCLUDED
#pragma once
#include "doc/color.h"
namespace doc {
class Image;
}
@ -16,7 +18,7 @@ namespace doc {
namespace app {
bool get_shrink_rect(int* x1, int* y1, int* x2, int* y2,
doc::Image *image, int refpixel);
doc::Image *image, doc::color_t refpixel);
bool get_shrink_rect2(int* x1, int* y1, int* x2, int* y2,
doc::Image* image, doc::Image* regimage);

View File

@ -28,7 +28,6 @@ Image* load_pic_file(const char* filename, int* x, int* y, Palette** palette)
{
base::UniquePtr<Image> image;
int size, compression;
int image_size;
int block_size;
int block_type;
int version;
@ -51,7 +50,7 @@ Image* load_pic_file(const char* filename, int* x, int* y, Palette** palette)
*y = ((short)base::fgetw(f)); // Y offset
bpp = std::fgetc(f); // bits per pixel (must be 8)
compression = std::fgetc(f); // compression flag (must be 0)
image_size = base::fgetl(f); // image size (in bytes)
base::fgetl(f); // image size (in bytes)
std::fgetc(f); // reserved
if (bpp != 8 || compression != 0) {

View File

@ -71,8 +71,8 @@ template<> std::string convert_to(const Sha1& from)
template<> Version convert_to(const std::string& from)
{
Version result;
int i = 0;
int j = 0;
std::string::size_type i = 0;
std::string::size_type j = 0;
while (j != std::string::npos) {
j = from.find('.', i);
std::string digitString = from.substr(i, j - i);

View File

@ -12,16 +12,18 @@
#include <vector>
#ifdef _WIN32
#include <windows.h>
#else
#include <fcntl.h>
#endif
using namespace base;
#ifdef _MSC_VER
#pragma warning (disable: 4996)
#define posix_open _open
#define posix_close _close
#define posix_read _read
#define posix_write _write
#else
#define posix_open open
#define posix_close close
#define posix_read read
#define posix_write write
#endif
TEST(FileHandle, Descriptors)
@ -37,23 +39,23 @@ TEST(FileHandle, Descriptors)
// Create file.
ASSERT_NO_THROW({
int fd = open_file_descriptor_with_exception(fn, "wb");
close(fd);
posix_close(fd);
});
// Truncate file.
ASSERT_NO_THROW({
int fd = open_file_descriptor_with_exception(fn, "wb");
EXPECT_EQ(6, write(fd, "hello", 6));
close(fd);
EXPECT_EQ(6, posix_write(fd, "hello", 6));
posix_close(fd);
});
// Read.
ASSERT_NO_THROW({
int fd = open_file_descriptor_with_exception(fn, "rb");
std::vector<char> buf(6);
EXPECT_EQ(6, read(fd, &buf[0], 6));
EXPECT_EQ(6, posix_read(fd, &buf[0], 6));
EXPECT_EQ("hello", std::string(&buf[0]));
close(fd);
posix_close(fd);
});
ASSERT_NO_THROW({

View File

@ -1,5 +1,5 @@
// Aseprite Base Library
// Copyright (c) 2001-2014 David Capello
// Copyright (c) 2001-2015 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
@ -16,11 +16,6 @@
#include "base/mutex.h"
#include "base/scoped_lock.h"
// It is used so MSVC doesn't complain about deprecated POSIX names.
#ifdef _MSC_VER
#pragma warning(disable:4996)
#endif
using namespace std;
#if !defined MEMLEAK // Without leak detection
@ -52,7 +47,11 @@ void base_free(void* mem)
char* base_strdup(const char* string)
{
assert(string != NULL);
#ifdef _MSC_VER
return _strdup(string);
#else
return strdup(string);
#endif
}
#else // With leak detection

View File

@ -523,9 +523,8 @@ double algo_spline_get_tan(double x0, double y0, double x1, double y1,
double x2, double y2, double x3, double y3,
double in_x)
{
double out_x, old_x, old_dx, old_dy;
int npts;
double out_x, old_dx, old_x;
double out_y, old_dy;
/* Derivatives of x(t) and y(t). */
double x, dx, ddx, dddx;
@ -572,7 +571,6 @@ double algo_spline_get_tan(double x0, double y0, double x1, double y1,
y = y0;
out_x = x0;
out_y = y0;
old_x = x0;
old_dx = dx;
@ -589,7 +587,6 @@ double algo_spline_get_tan(double x0, double y0, double x1, double y1,
y += dy;
out_x = x;
out_y = y;
if (out_x > in_x) {
dx = old_dx + (dx-old_dx) * (in_x-old_x) / (out_x-old_x);
dy = old_dy + (dy-old_dy) * (in_x-old_x) / (out_x-old_x);

View File

@ -233,7 +233,7 @@ public:
void feedLine(Image* spr, int spr_x, int spr_y) {
ASSERT(m_it != m_end);
int c = spr->getPixel(spr_x, spr_y);
color_t c = spr->getPixel(spr_x, spr_y);
if (c != m_mask_color)
*m_it = c;
++m_it;

View File

@ -58,7 +58,6 @@ namespace doc {
private:
iterator m_begin, m_end;
Flags m_flags;
};
} // namespace doc

View File

@ -16,8 +16,8 @@ FrameTag::FrameTag(frame_t from, frame_t to)
: Object(ObjectType::FrameTag)
, m_from(from)
, m_to(to)
, m_name("Tag")
, m_color(rgba(0, 0, 0, 255))
, m_name("Tag")
{
}

View File

@ -1,5 +1,5 @@
// Aseprite Document Library
// Copyright (c) 2001-2014 David Capello
// Copyright (c) 2001-2015 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
@ -209,7 +209,7 @@ namespace doc {
}
bool operator==(int b) const {
return (color_t(*this) == b);
return (color_t(*this) == color_t(b));
}
bool operator==(color_t b) const {
@ -221,7 +221,7 @@ namespace doc {
}
bool operator!=(int b) const {
return (color_t(*this) != b);
return (color_t(*this) != color_t(b));
}
bool operator!=(color_t b) const {
@ -241,7 +241,7 @@ namespace doc {
};
inline bool operator==(int a, const BitPixelAccess& b) {
return (a == color_t(b));
return (color_t(a) == color_t(b));
}
inline bool operator==(color_t a, const BitPixelAccess& b) {
@ -249,7 +249,7 @@ namespace doc {
}
inline bool operator!=(int a, const BitPixelAccess& b) {
return (a != color_t(b));
return (color_t(a) != color_t(b));
}
inline bool operator!=(color_t a, const BitPixelAccess& b) {

View File

@ -1,5 +1,5 @@
// Aseprite Document Library
// Copyright (c) 2001-2014 David Capello
// Copyright (c) 2001-2015 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
@ -308,9 +308,10 @@ void Mask::crop(const Image *image)
}
int beg_x1, beg_y1, beg_x2, beg_y2;
int c, x1, y1, x2, y2, old_color;
int c, x1, y1, x2, y2;
int done_count = 0;
int done;
color_t old_color;
if (!m_bitmap)
return;

View File

@ -153,9 +153,9 @@ bool Region::contains(const PointT<int>& pt) const
Region::Overlap Region::contains(const Rect& rect) const
{
static_assert(
Out == PIXMAN_REGION_OUT &&
In == PIXMAN_REGION_IN &&
Part == PIXMAN_REGION_PART, "Pixman constants have changed");
int(Out) == int(PIXMAN_REGION_OUT) &&
int(In) == int(PIXMAN_REGION_IN) &&
int(Part) == int(PIXMAN_REGION_PART), "Pixman constants have changed");
pixman_box32 box = { rect.x, rect.y, rect.x2(), rect.y2() };
return (Region::Overlap)pixman_region32_contains_rectangle(&m_region, &box);

View File

@ -14,10 +14,6 @@
#include <allegro.h>
#include <winalleg.h>
#ifdef _MSC_VER
#pragma warning(disable:4996) // To avoid MSVC warning about std::copy() with unsafe arguments
#endif
namespace she {
void ClipboardWin32::dispose()

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2001-2014 David Capello
// Copyright (C) 2001-2015 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
@ -9,10 +9,6 @@
#include <algorithm>
#include <windows.h>
#ifdef _MSC_VER
#pragma warning(disable:4996) // To void MSVC warning about std::copy() with unsafe arguments
#endif
namespace {
void get_system_clipboard_text(std::string& text)

View File

@ -117,7 +117,7 @@ TEST(JGrid, SameWidth2x1Grid)
//
// 2 (separator)
// _|_
// / \
// | |
// 10 2 0 2 10
// +---+-------+
// | 1 | 2 | 10

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2001-2013 David Capello
// Copyright (C) 2001-2013, 2015 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
@ -138,10 +138,8 @@ bool ScrollBar::onProcessMessage(Message* msg)
gfx::Point mousePos = static_cast<MouseMessage*>(msg)->position();
View* view = static_cast<View*>(getParent());
int pos, len, bar_size, viewport_size;
int old_pos;
getScrollBarInfo(&pos, &len, &bar_size, &viewport_size);
old_pos = pos;
if (bar_size > len) {
Point scroll = view->getViewScroll();

View File

@ -12,15 +12,20 @@ two modules will be linked. Preserve this property!
#include <limits.h>
#include <stdint.h>
#include <fcntl.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <stdio.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif /* _WIN32 */
#define posix_open _open
#define posix_close _close
#define posix_fdopen _fdopen
#else
#include <unistd.h>
#define posix_open open
#define posix_close close
#define posix_fdopen fdopen
#endif
#include "gif_lib.h"
#include "gif_lib_private.h"
@ -54,7 +59,7 @@ DGifOpenFileName(const char *FileName, int *Error)
int FileHandle;
GifFileType *GifFile;
if ((FileHandle = open(FileName, O_RDONLY)) == -1) {
if ((FileHandle = posix_open(FileName, O_RDONLY)) == -1) {
if (Error != NULL)
*Error = D_GIF_ERR_OPEN_FAILED;
return NULL;
@ -81,7 +86,7 @@ DGifOpenFileHandle(int FileHandle, int *Error)
if (GifFile == NULL) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_ENOUGH_MEM;
(void)close(FileHandle);
posix_close(FileHandle);
return NULL;
}
@ -95,7 +100,7 @@ DGifOpenFileHandle(int FileHandle, int *Error)
if (Private == NULL) {
if (Error != NULL)
*Error = D_GIF_ERR_NOT_ENOUGH_MEM;
(void)close(FileHandle);
posix_close(FileHandle);
free((char *)GifFile);
return NULL;
}
@ -103,7 +108,7 @@ DGifOpenFileHandle(int FileHandle, int *Error)
_setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */
#endif /* _WIN32 */
f = fdopen(FileHandle, "rb"); /* Make it into a stream: */
f = posix_fdopen(FileHandle, "rb"); /* Make it into a stream: */
/*@-mustfreeonly@*/
GifFile->Private = (void *)Private;
@ -373,7 +378,7 @@ DGifGetImageDesc(GifFileType *GifFile)
}
/* Get the image local color map: */
for (i = 0; i < GifFile->Image.ColorMap->ColorCount; i++) {
for (i = 0; i < (unsigned int)GifFile->Image.ColorMap->ColorCount; i++) {
if (READ(GifFile, Buf, 3) != 3) {
GifFreeMapObject(GifFile->Image.ColorMap);
GifFile->Error = D_GIF_ERR_READ_FAILED;

View File

@ -8,9 +8,6 @@ two modules will be linked. Preserve this property!
*****************************************************************************/
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
@ -19,9 +16,16 @@ two modules will be linked. Preserve this property!
#ifdef _WIN32
#include <io.h>
#define posix_open _open
#define posix_close _close
#define posix_fdopen _fdopen
#else
#include <unistd.h>
#include <sys/types.h>
#endif /* _WIN32 */
#define posix_open open
#define posix_close close
#define posix_fdopen fdopen
#endif
#include <sys/stat.h>
#include "gif_lib.h"
@ -37,8 +41,8 @@ static const GifPixelType CodeMask[] = {
static int EGifPutWord(int Word, GifFileType * GifFile);
static int EGifSetupCompress(GifFileType * GifFile);
static int EGifCompressLine(GifFileType * GifFile, GifPixelType * Line,
int LineLen);
static int EGifCompressOutput(GifFileType * GifFile, int Code);
const int LineLen);
static int EGifCompressOutput(GifFileType * GifFile, const int Code);
static int EGifBufferedOutput(GifFileType * GifFile, GifByteType * Buf,
int c);
@ -60,10 +64,10 @@ EGifOpenFileName(const char *FileName, const bool TestExistence, int *Error)
GifFileType *GifFile;
if (TestExistence)
FileHandle = open(FileName, O_WRONLY | O_CREAT | O_EXCL,
FileHandle = posix_open(FileName, O_WRONLY | O_CREAT | O_EXCL,
S_IREAD | S_IWRITE);
else
FileHandle = open(FileName, O_WRONLY | O_CREAT | O_TRUNC,
FileHandle = posix_open(FileName, O_WRONLY | O_CREAT | O_TRUNC,
S_IREAD | S_IWRITE);
if (FileHandle == -1) {
@ -73,7 +77,7 @@ EGifOpenFileName(const char *FileName, const bool TestExistence, int *Error)
}
GifFile = EGifOpenFileHandle(FileHandle, Error);
if (GifFile == (GifFileType *) NULL)
(void)close(FileHandle);
(void)posix_close(FileHandle);
return GifFile;
}
@ -117,7 +121,7 @@ EGifOpenFileHandle(const int FileHandle, int *Error)
_setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */
#endif /* _WIN32 */
f = fdopen(FileHandle, "wb"); /* Make it into a stream: */
f = posix_fdopen(FileHandle, "wb"); /* Make it into a stream: */
GifFile->Private = (void *)Private;
Private->FileHandle = FileHandle;
@ -471,8 +475,9 @@ EGifPutLine(GifFileType * GifFile, GifPixelType *Line, int LineLen)
Put one pixel (Pixel) into GIF file.
******************************************************************************/
int
EGifPutPixel(GifFileType *GifFile, GifPixelType Pixel)
EGifPutPixel(GifFileType *GifFile, const GifPixelType _Pixel)
{
GifPixelType Pixel = _Pixel;
GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
if (!IS_WRITEABLE(Private)) {

View File

@ -129,7 +129,7 @@ GifQuantizeBuffer(unsigned int Width,
free((char *)ColorArrayEntries);
return GIF_ERROR;
}
if (NewColorMapSize < *ColorMapSize) {
if ((int)NewColorMapSize < *ColorMapSize) {
/* And clear rest of color map: */
for (i = NewColorMapSize; i < *ColorMapSize; i++)
OutputColorMap[i].Red = OutputColorMap[i].Green =
@ -138,7 +138,7 @@ GifQuantizeBuffer(unsigned int Width,
/* Average the colors in each entry to be the color to be used in the
* output color map, and plug it into the output color map itself. */
for (i = 0; i < NewColorMapSize; i++) {
for (i = 0; i < (int)NewColorMapSize; i++) {
if ((j = NewColorSubdiv[i].NumEntries) > 0) {
QuantizedColor = NewColorSubdiv[i].QuantizedColors;
Red = Green = Blue = 0;
@ -149,9 +149,9 @@ GifQuantizeBuffer(unsigned int Width,
Blue += QuantizedColor->RGB[2];
QuantizedColor = QuantizedColor->Pnext;
}
OutputColorMap[i].Red = (Red << (8 - BITS_PER_PRIM_COLOR)) / j;
OutputColorMap[i].Green = (Green << (8 - BITS_PER_PRIM_COLOR)) / j;
OutputColorMap[i].Blue = (Blue << (8 - BITS_PER_PRIM_COLOR)) / j;
OutputColorMap[i].Red = (GifByteType)((Red << (8 - BITS_PER_PRIM_COLOR)) / j);
OutputColorMap[i].Green = (GifByteType)((Green << (8 - BITS_PER_PRIM_COLOR)) / j);
OutputColorMap[i].Blue = (GifByteType)((Blue << (8 - BITS_PER_PRIM_COLOR)) / j);
}
}