[poppler] 2 commits - glib/poppler-document.cc
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue May 28 13:07:02 UTC 2019
glib/poppler-document.cc | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
New commits:
commit d1f1a354d512645c616941b56aaf30641e89959f
Author: Simon McVittie <smcv at debian.org>
Date: Tue May 28 12:37:24 2019 +0100
glib: Document G_IO_ERROR as a possible error condition
This was already implicit from G_IO_ERROR_NOT_SUPPORTED being a
documented error condition, and from the use of GCancellable, but is
probably clearer when spelled out explicitly. The addition of
g_seekable_seek() and g_seekable_tell() in the previous commit might
add more error conditions in the same domain.
Signed-off-by: Simon McVittie <smcv at debian.org>
diff --git a/glib/poppler-document.cc b/glib/poppler-document.cc
index fdaa8b0f..49c9ed3a 100644
--- a/glib/poppler-document.cc
+++ b/glib/poppler-document.cc
@@ -276,8 +276,8 @@ stream_is_memory_buffer_or_local_file (GInputStream *stream)
* Creates a new #PopplerDocument reading the PDF contents from @stream.
* Note that the given #GInputStream must be seekable or %G_IO_ERROR_NOT_SUPPORTED
* will be returned.
- * Possible errors include those in the #POPPLER_ERROR and #G_FILE_ERROR
- * domains.
+ * Possible errors include those in the #POPPLER_ERROR, #G_FILE_ERROR
+ * and #G_IO_ERROR domains.
*
* Returns: (transfer full): a new #PopplerDocument, or %NULL
*
commit aa432bc0be1a8b9f74b85ae78590f11dc6949c8b
Author: Simon McVittie <smcv at debian.org>
Date: Thu Feb 14 09:43:32 2019 +0000
glib: Don't create PopplerInputStream with length 0
Since commit a59f6164, PopplerInputStream requires a nonzero length.
Loosely based on an earlier patch by Kouhei Sutou. This version adds
support for length == -1, which is documented to work.
Resolves: https://gitlab.freedesktop.org/poppler/poppler/issues/414
Bug-Debian: https://bugs.debian.org/896596
diff --git a/glib/poppler-document.cc b/glib/poppler-document.cc
index cd7e8ebf..fdaa8b0f 100644
--- a/glib/poppler-document.cc
+++ b/glib/poppler-document.cc
@@ -308,7 +308,14 @@ poppler_document_new_from_stream (GInputStream *stream,
}
if (stream_is_memory_buffer_or_local_file(stream)) {
- str = new PopplerInputStream(stream, cancellable, 0, false, 0, Object(objNull));
+ if (length == (goffset)-1) {
+ if (!g_seekable_seek(G_SEEKABLE(stream), 0, G_SEEK_END, cancellable, error)) {
+ g_prefix_error(error, "Unable to determine length of stream: ");
+ return nullptr;
+ }
+ length = g_seekable_tell(G_SEEKABLE(stream));
+ }
+ str = new PopplerInputStream(stream, cancellable, 0, false, length, Object(objNull));
} else {
CachedFile *cachedFile = new CachedFile(new PopplerCachedFileLoader(stream, cancellable, length), new GooString());
str = new CachedFileStream(cachedFile, 0, false, cachedFile->getLength(), Object(objNull));
More information about the poppler
mailing list