commit:     d4ca5662e87e32fd71d326e225bc3ca65c6fdabf
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  6 23:46:48 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Dec  6 23:46:48 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d4ca5662

media-libs/devil: Remove use of 'uchar' from jasper

Gentoo-bug: 600188

Package-Manager: portage-2.3.3

 media-libs/devil/devil-1.7.8-r2.ebuild             |  1 +
 .../files/devil-1.7.8-jasper-remove-uchar.patch    | 96 ++++++++++++++++++++++
 2 files changed, 97 insertions(+)

diff --git a/media-libs/devil/devil-1.7.8-r2.ebuild 
b/media-libs/devil/devil-1.7.8-r2.ebuild
index d999b88..9372d9c 100644
--- a/media-libs/devil/devil-1.7.8-r2.ebuild
+++ b/media-libs/devil/devil-1.7.8-r2.ebuild
@@ -46,6 +46,7 @@ PATCHES=(
        "${FILESDIR}/${P}"-ILUT.patch
        "${FILESDIR}/${P}"-restrict.patch
        "${FILESDIR}/${P}"-fix-test.patch
+       "${FILESDIR}/${P}"-jasper-remove-uchar.patch
 )
 
 src_prepare() {

diff --git a/media-libs/devil/files/devil-1.7.8-jasper-remove-uchar.patch 
b/media-libs/devil/files/devil-1.7.8-jasper-remove-uchar.patch
new file mode 100644
index 00000000..79fb188
--- /dev/null
+++ b/media-libs/devil/files/devil-1.7.8-jasper-remove-uchar.patch
@@ -0,0 +1,96 @@
+From 8b5e3cb38f46afd063a5258af0da1eb6a942dec5 Mon Sep 17 00:00:00 2001
+From: Ben Campbell <[email protected]>
+Date: Wed, 16 Nov 2016 14:41:05 +1300
+Subject: [PATCH] jp2: remove use of uchar define from older jasPer
+
+fixes #41
+jasPer now defines jas_uchar instead of uchar, but it's a moot
+point since the offending code in DevIL was never executed and could
+be removed.
+---
+ DevIL/src-IL/src/il_jp2.c | 42 ++++++++++++++----------------------------
+ 1 file changed, 14 insertions(+), 28 deletions(-)
+
+diff --git a/src-IL/src/il_jp2.c b/src-IL/src/il_jp2.c
+index acc5787..3fd397b 100644
+--- a/src-IL/src/il_jp2.c
++++ b/src-IL/src/il_jp2.c
+@@ -358,7 +358,7 @@ static jas_stream_ops_t jas_stream_devilops = {
+ 
+ static jas_stream_t *jas_stream_create(void);
+ static void jas_stream_destroy(jas_stream_t *stream);
+-static void jas_stream_initbuf(jas_stream_t *stream, int bufmode, char *buf, 
int bufsize);
++static void jas_stream_initbuf(jas_stream_t *stream, int bufmode );
+ 
+ 
+ // Modified version of jas_stream_fopen and jas_stream_memopen from 
jas_stream.c of JasPer
+@@ -377,7 +377,7 @@ jas_stream_t *iJp2ReadStream()
+       stream->openmode_ = JAS_STREAM_READ | JAS_STREAM_BINARY;
+ 
+       /* We use buffering whether it is from memory or a file. */
+-      jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);
++      jas_stream_initbuf(stream, JAS_STREAM_FULLBUF);
+ 
+       /* Select the operations for a memory stream. */
+       stream->ops_ = &jas_stream_devilops;
+@@ -432,8 +432,7 @@ jas_stream_t *iJp2ReadStream()
+ // The following functions are taken directly from jas_stream.c of JasPer,
+ //  since they are designed to be used within JasPer only.
+ 
+-static void jas_stream_initbuf(jas_stream_t *stream, int bufmode, char *buf,
+-  int bufsize)
++static void jas_stream_initbuf(jas_stream_t *stream, int bufmode )
+ {
+       /* If this function is being called, the buffer should not have been
+         initialized yet. */
+@@ -441,31 +440,18 @@ static void jas_stream_initbuf(jas_stream_t *stream, int 
bufmode, char *buf,
+ 
+       if (bufmode != JAS_STREAM_UNBUF) {
+               /* The full- or line-buffered mode is being employed. */
+-              if (!buf) {
+-                      /* The caller has not specified a buffer to employ, so 
allocate
+-                        one. */
+-                      if ((stream->bufbase_ = jas_malloc(JAS_STREAM_BUFSIZE +
+-                        JAS_STREAM_MAXPUTBACK))) {
+-                              stream->bufmode_ |= JAS_STREAM_FREEBUF;
+-                              stream->bufsize_ = JAS_STREAM_BUFSIZE;
+-                      } else {
+-                              /* The buffer allocation has failed.  Resort to 
unbuffered
+-                                operation. */
+-                              stream->bufbase_ = stream->tinybuf_;
+-                              stream->bufsize_ = 1;
+-                      }
+-              } else {
+-                      /* The caller has specified a buffer to employ. */
+-                      /* The buffer must be large enough to accommodate 
maximum
+-                        putback. */
+-                      assert(bufsize > JAS_STREAM_MAXPUTBACK);
+-                      stream->bufbase_ = JAS_CAST(uchar *, buf);
+-                      stream->bufsize_ = bufsize - JAS_STREAM_MAXPUTBACK;
+-              }
++        if ((stream->bufbase_ = jas_malloc(JAS_STREAM_BUFSIZE +
++          JAS_STREAM_MAXPUTBACK))) {
++            stream->bufmode_ |= JAS_STREAM_FREEBUF;
++            stream->bufsize_ = JAS_STREAM_BUFSIZE;
++        } else {
++            /* The buffer allocation has failed.  Resort to unbuffered
++              operation. */
++            stream->bufbase_ = stream->tinybuf_;
++            stream->bufsize_ = 1;
++        }
+       } else {
+               /* The unbuffered mode is being employed. */
+-              /* A buffer should not have been supplied by the caller. */
+-              assert(!buf);
+               /* Use a trivial one-character buffer. */
+               stream->bufbase_ = stream->tinybuf_;
+               stream->bufsize_ = 1;
+@@ -527,7 +513,7 @@ jas_stream_t *iJp2WriteStream()
+       stream->openmode_ = JAS_STREAM_WRITE | JAS_STREAM_BINARY;
+ 
+       /* We use buffering whether it is from memory or a file. */
+-      jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0);
++      jas_stream_initbuf(stream, JAS_STREAM_FULLBUF);
+ 
+       /* Select the operations for a memory stream. */
+       stream->ops_ = &jas_stream_devilops;

Reply via email to