| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(and as a side effect make the gi bindings API compatible with
other platforms)
The compat code was added in
https://git.gnome.org/browse/gdk-pixbuf/commit/?id=141506eb46927eb10b74bc24727488bdbde1c7d4
to allow switching to utf-8 paths while keeping binary compatibility and to
make new programs link against the "_utf8" variants.
This results in two problems for gi bindings:
(1) g-ir-scanner can't find the annotations due to the renames and thus
gdk_pixbuf_savev() can't be used in bindings (the other functions happen to
work with default annotations)
(2) g-ir-scanner will write the renamed functions in the gir/typelib with
the "_utf8" suffix, making the resulting bindings API incompatible with other
platforms.
Some months ago
https://git.gnome.org/browse/gdk-pixbuf/commit/?id=6855a2d806b2305938abc04b0cb4fa383f8ccd3b
got rid of symbol files, breaking ABI and old binaries.
This patch removes the, now unused, codepage code and removes the renames so that
new code links against the real functions again. To not break recent binaries
add new functions with the _utf8 suffix which just call the main functions.
Annotations are copied as well to not break bindings API.
A similar change in glib was commited some years ago
https://git.gnome.org/browse/glib/commit/?id=8c42a663f8182f8281c083390aa761e8e9badc63
https://bugzilla.gnome.org/show_bug.cgi?id=773760
|
|
|
|
|
|
|
|
| |
Doing overflow checks with signed integers invokes undefined
behavior and induces modern compilers to omit the checks altogether.
Avoid this by doing the overflow check with unsigned integers.
https://bugzilla.gnome.org/show_bug.cgi?id=770986
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=770756
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is some redundancy between the ico directory and the
bitmap image header. If the two disagree on the icon dimensions,
just toss the image, instead of risking crashes or OOM later. Also
add some more debug spew that helped in tracking this down, and
make error messages more unique.
The commit also includes a test image that has an example of
this discrepancy and triggers the early exit.
https://bugzilla.gnome.org/show_bug.cgi?id=769170
|
|
|
|
|
|
|
| |
Follow-up to previous commit; implement the new API in the modules we
ship that can save pixbufs.
https://bugzilla.gnome.org/show_bug.cgi?id=683371
|
|
|
|
|
|
|
| |
This is useful when you want to set an option (e.g. icc-profile) that
might be supported by different formats, but not all of them.
https://bugzilla.gnome.org/show_bug.cgi?id=683371
|
|
|
|
|
|
| |
gettext() calls inside library have to use gi18n-lib.h.
https://bugzilla.gnome.org/show_bug.cgi?id=758552
|
|
|
|
|
|
|
|
|
|
| |
Instead of risking crashes or OOM, return an error if
we detect integer overflow.
The commit also includes a test image that triggers
this overflow when used with pixbuf-read.
https://bugzilla.gnome.org/show_bug.cgi?id=768738
|
|
|
|
|
|
| |
Not just in loaders.
https://bugzilla.gnome.org/show_bug.cgi?id=768043
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=768043
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=768043
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=768043
|
|
|
|
|
| |
Threads have always been initializes, since 2011. Time
to drop this.
|
|
|
|
|
|
| |
With GCC 6.1 and newer.
https://bugzilla.gnome.org/show_bug.cgi?id=768042
|
|
|
|
|
|
|
|
|
|
| |
When the ico header turn out to be bad, always set an
error when we fail. Otherwise, applications will get
confused.
This commit also adds an example image with a bad ico header.
https://bugzilla.gnome.org/show_bug.cgi?id=768484
|
|
|
|
|
|
|
|
|
|
| |
Return an error if n_colors * samples overflows.
This commit also adds a reproducer that will cause
pixbuf-randomly-modified to crash in the absence of
the patch.
https://bugzilla.gnome.org/show_bug.cgi?id=768688
|
|
|
|
|
|
|
|
| |
When we used compiler directives to export symbols, we must also define
GDK_PIXBUF_VAR accordingly, so that the version number variables get
exported properly.
Please see https://bugzilla.gnome.org/show_bug.cgi?id=767164#c8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Like what is now done in GLib, ATK, GTK+ and some other libraries, make use
of compiler directives that is determined at configure stage (or
pre-configured) to export the symbols for the GdkPixbuf library. This
cleans up things a bit, as the .symbols file will no longer need to
be maintained, as long as the GDK_PIXBUF_AVAILABLE_IN_* (or so)
annotation is marked in the header and the source file that defines
the function has config.h included first.
Clean up configure.ac and gdk-pixbuf/Makefile.am a bit as a result.
https://bugzilla.gnome.org/show_bug.cgi?id=767164
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a version macro header that would reveal the availability of the
various APIs, which is used to indicate what stable release series an
API is available, and what release series is an API deprecated. This
is also used to export the symbols using compiler directives, which
would eliminate the need to maintain .symbols files.
Annotate the symbols in the pubic headers accordingly, and update the
doc sections file so that the macros are included in the documentation.
https://bugzilla.gnome.org/show_bug.cgi?id=767164
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes an issue where pixops_composite_nearest_noscale () had
different behavior than pixops_composite_nearest () for pixels in the
destination that are not a part of the transformed source image. Per the
documentation, the pixels at the edges of the source image should be
replicated to infinity.
Added a test to tests/pixbuf-composite.c
https://bugzilla.gnome.org/show_bug.cgi?id=766842
|
|
|
|
|
| |
We were emitting ::notify even for properties which have only
one possible value.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the autotools module that was added in the previous commit so that
we can use it to generate the file list for introspection at 'make dist',
as well as the command lines for g-ir-scanner and g-ir-compiler to
generate the .gir files and to compile the .typelib files.
This also makes detectenv-msvc.mak and introspection-msvc.mak generic so that
they may be respectively updated from $(glib_srcroot)/build/win32 and
$(gi_srcroot)/build/win32, as they are now copies of them.
https://bugzilla.gnome.org/show_bug.cgi?id=765034
|
|
|
|
|
|
|
|
| |
This is useful when the set of options you want to use changes according
to specific conditions, and makes the stream-based API consistent with
the others.
https://bugzilla.gnome.org/show_bug.cgi?id=683063
|
|
|
|
|
|
|
|
|
| |
bmp headers contain separate fields for the number of colors,
and the bit depth. Catch the impossible n_colors > 1 << depth
and error early, before it causes a out-of-bounds memory
access when decoding the colormap.
https://bugzilla.gnome.org/show_bug.cgi?id=758991
|
|
|
|
|
|
|
|
| |
Erroring out early if we find a bogus image depth is
the right thing to do, and avoids possible memory
overruns later on.
https://bugzilla.gnome.org/show_bug.cgi?id=747605
|
|
|
|
|
|
| |
The gdk-pixbuf-buffer-queue.c is built when the TGA loader is built as
a loader module, but is not built when the TGA loader is built directly
into the main GDK-Pixbuf library. Fix that, to avoid linker errors.
|
|
|
|
|
|
|
| |
Previously, we would silently ignore the case where the image didn't
have enough pixels.
That is not a good idea, in particular when we haven't even read a
header.
|
|
|
|
| |
In particular, add the canonical image/vnd.microsoft.icon
|
| |
|
| |
|
|
|
|
|
| |
This way, the images are neatly transparent/black instead of random
colors.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Always allocate a colormap struct, but only parse colors into
the colormap if the has_colormap flag is set in the header.
Allocating the colormap is important to not get failures when people
provide broken images - like a header indicating a pseudocolor image
but without a colormap.
|
| |
|
|
|
|
|
| |
Instead of using the same process func that only does an if (rle)
switch.
|
|
|
|
| |
Instead, just read as much data as is available.
|
|
|
|
|
| |
We don't have to differentiate between grayscale, truecolor and
colormapped anymore. The read_pixel function does that now.
|
| |
|
|
|
|
| |
We don't need contiguous pixbufs anymore.
|
|
|
|
|
| |
Simplifies code and thereby makes it clearer which formats are
supported.
|
|
|
|
|
|
| |
This unifies writing of pixels across all the different image data
parsers.
In particular it takes care of doing flipped images properly.
|
| |
|
|
|
|
|
| |
Read the bytes where they are needed, not before.
This way we get rid of the rowstride variable.
|
|
|
|
|
| |
Instead of keeping lots of flags, just keep a function pointer and
reassign to a new function whenever state changes.
|
|
|
|
|
| |
It's called the "extension area" and people are free to put random stuff
there. So don't error out if they do.
|
| |
|
|
|
|
| |
Taking heavy inspiration from Swfdec here.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using progressive loading, the GIF loader seems to expect us to
load every single frame of the image before being "done". That's really
not the case when thumbnailing, as we only want the first frame in that
case.
Return the GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION error when not all the
frames have been decoded, so that users of the API can ignore it, like
gnome-desktop's thumbnailer.
https://bugzilla.gnome.org/show_bug.cgi?id=755672
|