Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[freeimage] Updated port to prepare for libraw version 0.21 #29605

Closed
wants to merge 12 commits into from
26 changes: 9 additions & 17 deletions ports/freeimage/rawlib-build-fix.patch
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,26 @@ diff --git a/Source/FreeImage/PluginRAW.cpp b/Source/FreeImage/PluginRAW.cpp
index c7f8758a..a57fd5f1 100644
--- a/Source/FreeImage/PluginRAW.cpp
+++ b/Source/FreeImage/PluginRAW.cpp
@@ -46,6 +46,11 @@ private:
@@ -46,6 +46,14 @@ private:
long _eof;
INT64 _fsize;

+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
+protected:
+ LibRaw_abstract_datastream *substream = nullptr; // polyfill
+ // Minimal change to make version 3.18.0 of FreeImage compile with
+ // LibRaw 0.20 and later versions.
+ // Once the port of FreeImage has been updated to a version greater
+ // than 3.18.0, this patch should be removed as it will not be needed.
+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 20)
+ LibRaw_abstract_datastream const *substream = nullptr;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record the const was meant to come after the *: A const pointer, not a pointer to const.

+#endif
+
public:
LibRaw_freeimage_datastream(FreeImageIO *io, fi_handle handle) : _io(io), _handle(handle) {
long start_pos = io->tell_proc(handle);
@@ -56,6 +61,10 @@ public:
}

~LibRaw_freeimage_datastream() {
+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
+ if (substream)
+ delete substream;
+#endif
}

int valid() {
@@ -694,7 +703,11 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
@@ -694,7 +702,11 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
// --------------------------------------------

// (-s [0..N-1]) Select one raw image from input file
+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 21)
+#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 20)
+ RawProcessor->imgdata.rawparams.shot_select = 0;
+#else
RawProcessor->imgdata.params.shot_select = 0;
Expand Down