Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixed bug 3082 - invalid function pointer declarations for libpng and…
… SDL2_image

Martin Gerhardy

libpng-1.6.2 (bundles with SDL_image) leads to compiler warnings/errors with msvc:

(ClCompile target) ->
  IMG_png.c(276): warning C4028: formal parameter 2 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(277): warning C4028: formal parameter 2 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(279): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(280): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(280): warning C4028: formal parameter 2 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(281): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(281): warning C4028: formal parameter 2 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(282): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(283): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(284): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(285): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(286): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  IMG_png.c(289): warning C4028: formal parameter 1 different from declaration [C:\projects\caveexpress\src\libs\SDL2_image\SDL2_image.vcxproj]
  • Loading branch information
slouken committed Oct 22, 2017
1 parent ec1ab7d commit 204608d
Showing 1 changed file with 33 additions and 33 deletions.
66 changes: 33 additions & 33 deletions IMG_png.c 100644 → 100755
Expand Up @@ -90,29 +90,29 @@ static struct {
png_uint_32 (*png_get_IHDR) (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method);
png_voidp (*png_get_io_ptr) (png_const_structrp png_ptr);
png_byte (*png_get_channels) (png_const_structrp png_ptr, png_const_inforp info_ptr);
png_uint_32 (*png_get_PLTE) (png_const_structrp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette);
png_uint_32 (*png_get_tRNS) (png_const_structrp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values);
png_uint_32 (*png_get_PLTE) (png_const_structrp png_ptr, png_inforp info_ptr, png_colorp *palette, int *num_palette);
png_uint_32 (*png_get_tRNS) (png_const_structrp png_ptr, png_inforp info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values);
png_uint_32 (*png_get_valid) (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 flag);
void (*png_read_image) (png_structp png_ptr, png_bytepp image);
void (*png_read_info) (png_structp png_ptr, png_infop info_ptr);
void (*png_read_update_info) (png_structp png_ptr, png_infop info_ptr);
void (*png_set_expand) (png_structp png_ptr);
void (*png_set_gray_to_rgb) (png_structp png_ptr);
void (*png_set_packing) (png_structp png_ptr);
void (*png_set_read_fn) (png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn);
void (*png_set_strip_16) (png_structp png_ptr);
void (*png_read_image) (png_structrp png_ptr, png_bytepp image);
void (*png_read_info) (png_structrp png_ptr, png_inforp info_ptr);
void (*png_read_update_info) (png_structrp png_ptr, png_inforp info_ptr);
void (*png_set_expand) (png_structrp png_ptr);
void (*png_set_gray_to_rgb) (png_structrp png_ptr);
void (*png_set_packing) (png_structrp png_ptr);
void (*png_set_read_fn) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn);
void (*png_set_strip_16) (png_structrp png_ptr);
int (*png_sig_cmp) (png_const_bytep sig, png_size_t start, png_size_t num_to_check);
#ifndef LIBPNG_VERSION_12
jmp_buf* (*png_set_longjmp_fn) (png_structp, png_longjmp_ptr, size_t);
jmp_buf* (*png_set_longjmp_fn) (png_structrp, png_longjmp_ptr, size_t);
#endif
png_structp (*png_create_write_struct) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn);
void (*png_destroy_write_struct) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr);
void (*png_set_write_fn) (png_structp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn);
void (*png_set_IHDR) (png_structp png_ptr, png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type);
void (*png_write_info) (png_structp png_ptr, png_infop info_ptr);
void (*png_set_rows) (png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers);
void (*png_write_png) (png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params);
void (*png_set_PLTE) (png_structp png_ptr, png_infop info_ptr, png_colorp palette, int num_palette);
void (*png_set_write_fn) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn);
void (*png_set_IHDR) (png_structrp png_ptr, png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type);
void (*png_write_info) (png_structrp png_ptr, png_inforp info_ptr);
void (*png_set_rows) (png_structrp png_ptr, png_inforp info_ptr, png_bytepp row_pointers);
void (*png_write_png) (png_structrp png_ptr, png_inforp info_ptr, int transforms, png_voidp params);
void (*png_set_PLTE) (png_structrp png_ptr, png_inforp info_ptr, png_colorp palette, int num_palette);
} lib;

#ifdef LOAD_PNG_DYNAMIC
Expand All @@ -131,7 +131,7 @@ int IMG_InitPNG()
return -1;
}
lib.png_create_read_struct =
(png_structp (*) (png_const_charp, png_voidp, png_error_ptr, png_error_ptr))
(png_structrp (*) (png_const_charp, png_voidp, png_error_ptr, png_error_ptr))
SDL_LoadFunction(lib.handle, "png_create_read_struct");
if ( lib.png_create_read_struct == NULL ) {
SDL_UnloadObject(lib.handle);
Expand Down Expand Up @@ -166,14 +166,14 @@ int IMG_InitPNG()
return -1;
}
lib.png_get_PLTE =
(png_uint_32 (*) (png_const_structrp, png_infop, png_colorp *, int *))
(png_uint_32 (*) (png_const_structrp, png_inforp, png_colorp *, int *))
SDL_LoadFunction(lib.handle, "png_get_PLTE");
if ( lib.png_get_PLTE == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_get_tRNS =
(png_uint_32 (*) (png_const_structrp, png_infop, png_bytep *, int *, png_color_16p *))
(png_uint_32 (*) (png_const_structrp, png_inforp, png_bytep *, int *, png_color_16p *))
SDL_LoadFunction(lib.handle, "png_get_tRNS");
if ( lib.png_get_tRNS == NULL ) {
SDL_UnloadObject(lib.handle);
Expand All @@ -187,56 +187,56 @@ int IMG_InitPNG()
return -1;
}
lib.png_read_image =
(void (*) (png_structp, png_bytepp))
(void (*) (png_structrp, png_bytepp))
SDL_LoadFunction(lib.handle, "png_read_image");
if ( lib.png_read_image == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_read_info =
(void (*) (png_structp, png_infop))
(void (*) (png_structrp, png_inforp))
SDL_LoadFunction(lib.handle, "png_read_info");
if ( lib.png_read_info == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_read_update_info =
(void (*) (png_structp, png_infop))
(void (*) (png_structrp, png_inforp))
SDL_LoadFunction(lib.handle, "png_read_update_info");
if ( lib.png_read_update_info == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_set_expand =
(void (*) (png_structp))
(void (*) (png_structrp))
SDL_LoadFunction(lib.handle, "png_set_expand");
if ( lib.png_set_expand == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_set_gray_to_rgb =
(void (*) (png_structp))
(void (*) (png_structrp))
SDL_LoadFunction(lib.handle, "png_set_gray_to_rgb");
if ( lib.png_set_gray_to_rgb == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_set_packing =
(void (*) (png_structp))
(void (*) (png_structrp))
SDL_LoadFunction(lib.handle, "png_set_packing");
if ( lib.png_set_packing == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_set_read_fn =
(void (*) (png_structp, png_voidp, png_rw_ptr))
(void (*) (png_structrp, png_voidp, png_rw_ptr))
SDL_LoadFunction(lib.handle, "png_set_read_fn");
if ( lib.png_set_read_fn == NULL ) {
SDL_UnloadObject(lib.handle);
return -1;
}
lib.png_set_strip_16 =
(void (*) (png_structp))
(void (*) (png_structrp))
SDL_LoadFunction(lib.handle, "png_set_strip_16");
if ( lib.png_set_strip_16 == NULL ) {
SDL_UnloadObject(lib.handle);
Expand All @@ -251,7 +251,7 @@ int IMG_InitPNG()
}
#ifndef LIBPNG_VERSION_12
lib.png_set_longjmp_fn =
(jmp_buf * (*) (png_structp, png_longjmp_ptr, size_t))
(jmp_buf * (*) (png_structrp, png_longjmp_ptr, size_t))
SDL_LoadFunction(lib.handle, "png_set_longjmp_fn");
if ( lib.png_set_longjmp_fn == NULL ) {
SDL_UnloadObject(lib.handle);
Expand Down Expand Up @@ -599,9 +599,9 @@ SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src)
if (color_type == PNG_COLOR_TYPE_GRAY) {
palette->ncolors = 256;
for (i = 0; i < 256; i++) {
palette->colors[i].r = i;
palette->colors[i].g = i;
palette->colors[i].b = i;
palette->colors[i].r = (Uint8)i;
palette->colors[i].g = (Uint8)i;
palette->colors[i].b = (Uint8)i;
}
} else if (png_num_palette > 0 ) {
palette->ncolors = png_num_palette;
Expand Down Expand Up @@ -803,7 +803,7 @@ static int IMG_SavePNG_RW_miniz(SDL_Surface *surface, SDL_RWops *dst, int freeds
int result = -1;

if (dst) {
size_t size;
size_t size = 0;
void *png = NULL;

if (surface->format->format == png_format) {
Expand Down

0 comments on commit 204608d

Please sign in to comment.