[librpbase] RpPng::load(): Take IRpFile* instead of IRpFilePtr. (BREAKING CHANGE; SOVERSION bumped to 6)

In many cases, an IRpFilePtr isn't actually needed here, so make the
base function take just IRpFile*.

Add a static inline wrapper that takes IRpFilePtr.

J2MEPrivate::loadIcon(): Get rid of MemFilePtr, since we don't actually
need it here. Use a plain MemFile* instead.
This commit is contained in:
David Korth 2024-11-24 15:32:27 -05:00
parent 5d618e66aa
commit e0abbe20bb
7 changed files with 26 additions and 15 deletions

18
debian/control vendored
View File

@ -42,7 +42,7 @@ Vcs-Browser: https://github.com/GerbilSoft/rom-properties
Package: rom-properties-all
Architecture: any
Depends: ${misc:Depends}, libromdata5, rom-properties-kde4, rom-properties-kf5, rom-properties-xfce, rom-properties-gtk3, rom-properties-cli, rom-properties-tracker, rom-properties-utils, rom-properties-lang, rom-properties-thumbnailer-dbus
Depends: ${misc:Depends}, libromdata6, rom-properties-kde4, rom-properties-kf5, rom-properties-xfce, rom-properties-gtk3, rom-properties-cli, rom-properties-tracker, rom-properties-utils, rom-properties-lang, rom-properties-thumbnailer-dbus
Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality
for ROM images, disc images, and save files for various game consoles,
@ -50,7 +50,7 @@ Description: ROM Properties Page shell extension
.
This is a meta-package that installs all rom-properties packages.
Package: libromdata5
Package: libromdata6
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, rom-properties-data
Description: ROM Properties Page shell extension
@ -63,7 +63,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-kde4
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5, rom-properties-utils, rom-properties-xdg
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg
Recommends: rom-properties-lang
Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality
@ -74,7 +74,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-kio-servicemenus
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5, rom-properties-utils
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils
Conflicts: rom-properties-kf5 (<< 2.3)
Replaces: rom-properties-kf5 (<< 2.3)
Description: ROM Properties Page shell extension
@ -86,7 +86,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-kf5
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5, rom-properties-utils, rom-properties-xdg, rom-properties-kio-servicemenus
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg, rom-properties-kio-servicemenus
Recommends: rom-properties-lang
Conflicts: rom-properties-kde5
Replaces: rom-properties-kde5
@ -99,7 +99,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-xfce
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
Recommends: rom-properties-lang, rom-properties-tracker
Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality
@ -113,7 +113,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-gtk3
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6, rom-properties-utils, rom-properties-xdg, rom-properties-thumbnailer-dbus
Recommends: rom-properties-lang, rom-properties-tracker
Conflicts: rom-properties-gnome, rom-properties-mate, rom-properties-cinnamon, rom-properties-gtk3-common
Replaces: rom-properties-gnome, rom-properties-mate, rom-properties-cinnamon, rom-properties-gtk3-common
@ -132,7 +132,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-cli
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6
Recommends: rom-properties-lang
Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality
@ -143,7 +143,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-tracker
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6
Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality
for ROM images, disc images, and save files for various game consoles,

View File

@ -455,8 +455,8 @@ IF(RP_LIBROMDATA_IS_DLL)
ADD_DEFINITIONS(-DRP_BUILDING_FOR_DLL=1)
# NOTE: Not using the project version here.
# This represents the ABI version.
SET(${PROJECT_NAME}_VERSION 5.0)
SET(${PROJECT_NAME}_SOVERSION 5)
SET(${PROJECT_NAME}_VERSION 6.0)
SET(${PROJECT_NAME}_SOVERSION 6)
IF(MSVC)
# Delay-load sources.
SET(${PROJECT_NAME}-DELAYLOAD_SRC ../libwin32common/DelayLoadHelper.c)

View File

@ -502,8 +502,9 @@ rp_image_const_ptr J2MEPrivate::loadIcon(void)
// Create a MemFile and decode the image.
// TODO: For rpcli, shortcut to extract the PNG directly.
MemFilePtr f_mem = std::make_shared<MemFile>(png_buf.data(), png_buf.size());
MemFile *const f_mem = new MemFile(png_buf.data(), png_buf.size());
this->img_icon = RpPng::load(f_mem);
delete f_mem;
return this->img_icon;
}

View File

@ -471,7 +471,7 @@ static rp_image_ptr loadPng(png_structp png_ptr, png_infop info_ptr)
* @param file IRpFile to load from
* @return rp_image*, or nullptr on error
*/
rp_image_ptr load(const IRpFilePtr &file)
rp_image_ptr load(IRpFile *file)
{
if (!file)
return nullptr;
@ -512,7 +512,7 @@ rp_image_ptr load(const IRpFilePtr &file)
#endif /* PNG_WARNINGS_SUPPORTED */
// Initialize the custom I/O handler for IRpFile.
png_set_read_fn(png_ptr, file.get(), png_io_IRpFile_read);
png_set_read_fn(png_ptr, file, png_io_IRpFile_read);
// Call the actual PNG image reading function.
const rp_image_ptr img = loadPng(png_ptr, info_ptr);

View File

@ -29,7 +29,17 @@ namespace RpPng {
* @return rp_image*, or nullptr on error
*/
RP_LIBROMDATA_PUBLIC
LibRpTexture::rp_image_ptr load(const LibRpFile::IRpFilePtr &file);
LibRpTexture::rp_image_ptr load(LibRpFile::IRpFile *file);
/**
* Load a PNG image from an IRpFile.
* @param file IRpFile to load from
* @return rp_image*, or nullptr on error
*/
static inline LibRpTexture::rp_image_ptr load(const LibRpFile::IRpFilePtr &file)
{
return load(file.get());
}
/**
* Save an image in PNG format to an IRpFile.