[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 Package: rom-properties-all
Architecture: any 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 Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality This shell extension provides thumbnailing and property page functionality
for ROM images, disc images, and save files for various game consoles, 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. This is a meta-package that installs all rom-properties packages.
Package: libromdata5 Package: libromdata6
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, rom-properties-data Depends: ${shlibs:Depends}, ${misc:Depends}, rom-properties-data
Description: ROM Properties Page shell extension Description: ROM Properties Page shell extension
@ -63,7 +63,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-kde4 Package: rom-properties-kde4
Architecture: any 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 Recommends: rom-properties-lang
Description: ROM Properties Page shell extension Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality This shell extension provides thumbnailing and property page functionality
@ -74,7 +74,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-kio-servicemenus Package: rom-properties-kio-servicemenus
Architecture: all 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) Conflicts: rom-properties-kf5 (<< 2.3)
Replaces: rom-properties-kf5 (<< 2.3) Replaces: rom-properties-kf5 (<< 2.3)
Description: ROM Properties Page shell extension Description: ROM Properties Page shell extension
@ -86,7 +86,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-kf5 Package: rom-properties-kf5
Architecture: any 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 Recommends: rom-properties-lang
Conflicts: rom-properties-kde5 Conflicts: rom-properties-kde5
Replaces: rom-properties-kde5 Replaces: rom-properties-kde5
@ -99,7 +99,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-xfce Package: rom-properties-xfce
Architecture: any 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 Recommends: rom-properties-lang, rom-properties-tracker
Description: ROM Properties Page shell extension Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality This shell extension provides thumbnailing and property page functionality
@ -113,7 +113,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-gtk3 Package: rom-properties-gtk3
Architecture: any 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 Recommends: rom-properties-lang, rom-properties-tracker
Conflicts: rom-properties-gnome, rom-properties-mate, rom-properties-cinnamon, rom-properties-gtk3-common 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 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 Package: rom-properties-cli
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5 Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6
Recommends: rom-properties-lang Recommends: rom-properties-lang
Description: ROM Properties Page shell extension Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality This shell extension provides thumbnailing and property page functionality
@ -143,7 +143,7 @@ Description: ROM Properties Page shell extension
Package: rom-properties-tracker Package: rom-properties-tracker
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata5 Depends: ${shlibs:Depends}, ${misc:Depends}, libromdata6
Description: ROM Properties Page shell extension Description: ROM Properties Page shell extension
This shell extension provides thumbnailing and property page functionality This shell extension provides thumbnailing and property page functionality
for ROM images, disc images, and save files for various game consoles, 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) ADD_DEFINITIONS(-DRP_BUILDING_FOR_DLL=1)
# NOTE: Not using the project version here. # NOTE: Not using the project version here.
# This represents the ABI version. # This represents the ABI version.
SET(${PROJECT_NAME}_VERSION 5.0) SET(${PROJECT_NAME}_VERSION 6.0)
SET(${PROJECT_NAME}_SOVERSION 5) SET(${PROJECT_NAME}_SOVERSION 6)
IF(MSVC) IF(MSVC)
# Delay-load sources. # Delay-load sources.
SET(${PROJECT_NAME}-DELAYLOAD_SRC ../libwin32common/DelayLoadHelper.c) 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. // Create a MemFile and decode the image.
// TODO: For rpcli, shortcut to extract the PNG directly. // 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); this->img_icon = RpPng::load(f_mem);
delete f_mem;
return this->img_icon; 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 * @param file IRpFile to load from
* @return rp_image*, or nullptr on error * @return rp_image*, or nullptr on error
*/ */
rp_image_ptr load(const IRpFilePtr &file) rp_image_ptr load(IRpFile *file)
{ {
if (!file) if (!file)
return nullptr; return nullptr;
@ -512,7 +512,7 @@ rp_image_ptr load(const IRpFilePtr &file)
#endif /* PNG_WARNINGS_SUPPORTED */ #endif /* PNG_WARNINGS_SUPPORTED */
// Initialize the custom I/O handler for IRpFile. // 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. // Call the actual PNG image reading function.
const rp_image_ptr img = loadPng(png_ptr, info_ptr); 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 * @return rp_image*, or nullptr on error
*/ */
RP_LIBROMDATA_PUBLIC 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. * Save an image in PNG format to an IRpFile.