insque/remque bugs

classic Classic list List threaded Threaded
7 messages Options
enh
Reply | Threaded
Open this post in threaded view
|

insque/remque bugs

enh
If the queue is to be used as a linear list, invoking insque(&element,
NULL), where element is the initial element of the queue, shall
initialize the forward and backward pointers of element to null
pointers.

  -- http://pubs.opengroup.org/onlinepubs/009695399/functions/insque.html

cvs server: Diffing .
Index: insque.c
===================================================================
RCS file: /cvs/src/lib/libc/stdlib/insque.c,v
retrieving revision 1.2
diff -u -r1.2 insque.c
--- insque.c 8 Aug 2005 08:05:36 -0000 1.2
+++ insque.c 24 Jul 2014 00:40:11 -0000
@@ -41,8 +41,15 @@
  struct qelem *e = (struct qelem *) entry;
  struct qelem *p = (struct qelem *) pred;

+ if (p == NULL) {
+ e->q_forw = e->q_back = NULL;
+ return;
+ }
+
  e->q_forw = p->q_forw;
  e->q_back = p;
- p->q_forw->q_back = e;
+ if (p->q_forw != NULL) {
+ p->q_forw->q_back = e;
+ }
  p->q_forw = e;
 }
Index: remque.c
===================================================================
RCS file: /cvs/src/lib/libc/stdlib/remque.c,v
retrieving revision 1.2
diff -u -r1.2 remque.c
--- remque.c 8 Aug 2005 08:05:37 -0000 1.2
+++ remque.c 24 Jul 2014 00:40:11 -0000
@@ -39,6 +39,10 @@
 remque(void *element)
 {
  struct qelem *e = (struct qelem *) element;
- e->q_forw->q_back = e->q_back;
- e->q_back->q_forw = e->q_forw;
+ if (e->q_forw != NULL) {
+ e->q_forw->q_back = e->q_back;
+ }
+ if (e->q_back != NULL) {
+ e->q_back->q_forw = e->q_forw;
+ }
 }

Reply | Threaded
Open this post in threaded view
|

Re: insque/remque bugs

Philip Guenther-2
On Wed, Jul 23, 2014 at 5:43 PM, enh <[hidden email]> wrote:

> If the queue is to be used as a linear list, invoking insque(&element,
> NULL), where element is the initial element of the queue, shall
> initialize the forward and backward pointers of element to null
> pointers.
>

Hmm.  Do the vax ASM versions of these functions need changes to support
this (i.e., did XOPEN manage to screw these up so that they aren't the same
as the vax operations they were based on)?  We'll need to answer that
before we can make this change.  Miod?

Also, when you found these didn't compile (you forgot to pull in a header
to define NULL), _do_ please follow up to your original email...  ;-)


Philip Guenther
Reply | Threaded
Open this post in threaded view
|

Re: insque/remque bugs

Miod Vallat
> > If the queue is to be used as a linear list, invoking insque(&element,
> > NULL), where element is the initial element of the queue, shall
> > initialize the forward and backward pointers of element to null
> > pointers.
> >
>
> Hmm.  Do the vax ASM versions of these functions need changes to support
> this (i.e., did XOPEN manage to screw these up so that they aren't the same
> as the vax operations they were based on)?  We'll need to answer that
> before we can make this change.  Miod?

Yes, they did, and we will need to switch vax to use the C code, as the
vax insque and remque instructions expect all memory accesses to be
possible, and will backup and fault otherwise.

Reply | Threaded
Open this post in threaded view
|

Re: insque/remque bugs

Philip Guenther-2
On Sun, 10 Aug 2014, Miod Vallat wrote:

> > > If the queue is to be used as a linear list, invoking insque(&element,
> > > NULL), where element is the initial element of the queue, shall
> > > initialize the forward and backward pointers of element to null
> > > pointers.
> > >
> >
> > Hmm.  Do the vax ASM versions of these functions need changes to support
> > this (i.e., did XOPEN manage to screw these up so that they aren't the same
> > as the vax operations they were based on)?  We'll need to answer that
> > before we can make this change.  Miod?
>
> Yes, they did, and we will need to switch vax to use the C code, as the
> vax insque and remque instructions expect all memory accesses to be
> possible, and will backup and fault otherwise.

So, complete diff.  This also zaps the unnecessary casts in the .c files.

ok?

Philip


Index: stdlib/Makefile.inc
===================================================================
RCS file: /cvs/src/lib/libc/stdlib/Makefile.inc,v
retrieving revision 1.53
diff -u -p -r1.53 Makefile.inc
--- stdlib/Makefile.inc 8 May 2014 21:43:49 -0000 1.53
+++ stdlib/Makefile.inc 11 Aug 2014 00:55:50 -0000
@@ -11,7 +11,7 @@ SRCS+= a64l.c abort.c atexit.c atoi.c at
  strtol.c strtoll.c strtonum.c strtoul.c strtoull.c strtoumax.c \
  system.c tfind.c tsearch.c _rand48.c drand48.c erand48.c jrand48.c \
  lcong48.c lrand48.c mrand48.c nrand48.c seed48.c srand48.c qabs.c \
- qdiv.c _Exit.c
+ qdiv.c _Exit.c insque.c remque.c
 
 .if (${MACHINE_CPU} == "i386")
 SRCS+= abs.S div.S labs.S ldiv.S
@@ -22,12 +22,6 @@ SRCS+= abs.c div.c labs.c ldiv.c
 SRCS+= abs.c div.c labs.c ldiv.c
 .else
 SRCS+= abs.c div.c labs.c ldiv.c
-.endif
-
-.if (${MACHINE_CPU} == "vax")
-SRCS+= insque.S remque.S
-.else
-SRCS+= insque.c remque.c
 .endif
 
 MAN+= a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 atoll.3 \
Index: stdlib/insque.c
===================================================================
RCS file: /cvs/src/lib/libc/stdlib/insque.c,v
retrieving revision 1.2
diff -u -p -r1.2 insque.c
--- stdlib/insque.c 8 Aug 2005 08:05:36 -0000 1.2
+++ stdlib/insque.c 11 Aug 2014 00:55:50 -0000
@@ -28,6 +28,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <stdlib.h>
 #include <search.h>
 
 struct qelem {
@@ -38,11 +39,16 @@ struct qelem {
 void
 insque(void *entry, void *pred)
 {
- struct qelem *e = (struct qelem *) entry;
- struct qelem *p = (struct qelem *) pred;
+ struct qelem *e = entry;
+ struct qelem *p = pred;
 
- e->q_forw = p->q_forw;
- e->q_back = p;
- p->q_forw->q_back = e;
- p->q_forw = e;
+ if (p == NULL)
+ e->q_forw = e->q_back = NULL;
+ else {
+ e->q_forw = p->q_forw;
+ e->q_back = p;
+ if (p->q_forw != NULL)
+ p->q_forw->q_back = e;
+ p->q_forw = e;
+ }
 }
Index: stdlib/remque.c
===================================================================
RCS file: /cvs/src/lib/libc/stdlib/remque.c,v
retrieving revision 1.2
diff -u -p -r1.2 remque.c
--- stdlib/remque.c 8 Aug 2005 08:05:37 -0000 1.2
+++ stdlib/remque.c 11 Aug 2014 00:55:50 -0000
@@ -28,6 +28,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <stdlib.h>
 #include <search.h>
 
 struct qelem {
@@ -38,7 +39,10 @@ struct qelem {
 void
 remque(void *element)
 {
- struct qelem *e = (struct qelem *) element;
- e->q_forw->q_back = e->q_back;
- e->q_back->q_forw = e->q_forw;
+ struct qelem *e = element;
+
+ if (e->q_forw != NULL)
+ e->q_forw->q_back = e->q_back;
+ if (e->q_back != NULL)
+ e->q_back->q_forw = e->q_forw;
 }
Index: arch/vax/stdlib/insque.S
===================================================================
RCS file: arch/vax/stdlib/insque.S
diff -N arch/vax/stdlib/insque.S
--- arch/vax/stdlib/insque.S 5 Jul 2013 21:10:50 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-/* $OpenBSD: insque.S,v 1.4 2013/07/05 21:10:50 miod Exp $ */
-
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * From: "@(#)insque.s 8.1 (Berkeley) 6/4/93"
- */
-
-/* insque(new, pred) */
-
-#include "DEFS.h"
-
-ENTRY(insque, 0)
- insque *4(%ap), *8(%ap)
- ret
Index: arch/vax/stdlib/remque.S
===================================================================
RCS file: arch/vax/stdlib/remque.S
diff -N arch/vax/stdlib/remque.S
--- arch/vax/stdlib/remque.S 5 Jul 2013 21:10:50 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-/* $OpenBSD: remque.S,v 1.4 2013/07/05 21:10:50 miod Exp $ */
-
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * From: "@(#)remque.s 8.1 (Berkeley) 6/4/93"
- */
-
-/* remque(entry) */
-
-#include "DEFS.h"
-
-ENTRY(remque, 0)
- remque *4(%ap),%r0
- ret

enh
Reply | Threaded
Open this post in threaded view
|

Re: insque/remque bugs

enh
lgtm.

(the previous patch compiled for me because i was building within
Android, and we -include some stuff to let us build OpenBSD source
that causes some namespace pollution.)

On Sun, Aug 10, 2014 at 5:58 PM, Philip Guenther <[hidden email]> wrote:

> On Sun, 10 Aug 2014, Miod Vallat wrote:
>> > > If the queue is to be used as a linear list, invoking insque(&element,
>> > > NULL), where element is the initial element of the queue, shall
>> > > initialize the forward and backward pointers of element to null
>> > > pointers.
>> > >
>> >
>> > Hmm.  Do the vax ASM versions of these functions need changes to support
>> > this (i.e., did XOPEN manage to screw these up so that they aren't the same
>> > as the vax operations they were based on)?  We'll need to answer that
>> > before we can make this change.  Miod?
>>
>> Yes, they did, and we will need to switch vax to use the C code, as the
>> vax insque and remque instructions expect all memory accesses to be
>> possible, and will backup and fault otherwise.
>
> So, complete diff.  This also zaps the unnecessary casts in the .c files.
>
> ok?
>
> Philip
>
>
> Index: stdlib/Makefile.inc
> ===================================================================
> RCS file: /cvs/src/lib/libc/stdlib/Makefile.inc,v
> retrieving revision 1.53
> diff -u -p -r1.53 Makefile.inc
> --- stdlib/Makefile.inc 8 May 2014 21:43:49 -0000       1.53
> +++ stdlib/Makefile.inc 11 Aug 2014 00:55:50 -0000
> @@ -11,7 +11,7 @@ SRCS+=        a64l.c abort.c atexit.c atoi.c at
>         strtol.c strtoll.c strtonum.c strtoul.c strtoull.c strtoumax.c \
>         system.c tfind.c tsearch.c _rand48.c drand48.c erand48.c jrand48.c \
>         lcong48.c lrand48.c mrand48.c nrand48.c seed48.c srand48.c qabs.c \
> -       qdiv.c _Exit.c
> +       qdiv.c _Exit.c insque.c remque.c
>
>  .if (${MACHINE_CPU} == "i386")
>  SRCS+= abs.S div.S labs.S ldiv.S
> @@ -22,12 +22,6 @@ SRCS+=       abs.c div.c labs.c ldiv.c
>  SRCS+= abs.c div.c labs.c ldiv.c
>  .else
>  SRCS+= abs.c div.c labs.c ldiv.c
> -.endif
> -
> -.if (${MACHINE_CPU} == "vax")
> -SRCS+= insque.S remque.S
> -.else
> -SRCS+= insque.c remque.c
>  .endif
>
>  MAN+=  a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 atoll.3 \
> Index: stdlib/insque.c
> ===================================================================
> RCS file: /cvs/src/lib/libc/stdlib/insque.c,v
> retrieving revision 1.2
> diff -u -p -r1.2 insque.c
> --- stdlib/insque.c     8 Aug 2005 08:05:36 -0000       1.2
> +++ stdlib/insque.c     11 Aug 2014 00:55:50 -0000
> @@ -28,6 +28,7 @@
>   * POSSIBILITY OF SUCH DAMAGE.
>   */
>
> +#include <stdlib.h>
>  #include <search.h>
>
>  struct qelem {
> @@ -38,11 +39,16 @@ struct qelem {
>  void
>  insque(void *entry, void *pred)
>  {
> -       struct qelem *e = (struct qelem *) entry;
> -       struct qelem *p = (struct qelem *) pred;
> +       struct qelem *e = entry;
> +       struct qelem *p = pred;
>
> -       e->q_forw = p->q_forw;
> -       e->q_back = p;
> -       p->q_forw->q_back = e;
> -       p->q_forw = e;
> +       if (p == NULL)
> +               e->q_forw = e->q_back = NULL;
> +       else {
> +               e->q_forw = p->q_forw;
> +               e->q_back = p;
> +               if (p->q_forw != NULL)
> +                       p->q_forw->q_back = e;
> +               p->q_forw = e;
> +       }
>  }
> Index: stdlib/remque.c
> ===================================================================
> RCS file: /cvs/src/lib/libc/stdlib/remque.c,v
> retrieving revision 1.2
> diff -u -p -r1.2 remque.c
> --- stdlib/remque.c     8 Aug 2005 08:05:37 -0000       1.2
> +++ stdlib/remque.c     11 Aug 2014 00:55:50 -0000
> @@ -28,6 +28,7 @@
>   * POSSIBILITY OF SUCH DAMAGE.
>   */
>
> +#include <stdlib.h>
>  #include <search.h>
>
>  struct qelem {
> @@ -38,7 +39,10 @@ struct qelem {
>  void
>  remque(void *element)
>  {
> -       struct qelem *e = (struct qelem *) element;
> -       e->q_forw->q_back = e->q_back;
> -       e->q_back->q_forw = e->q_forw;
> +       struct qelem *e = element;
> +
> +       if (e->q_forw != NULL)
> +               e->q_forw->q_back = e->q_back;
> +       if (e->q_back != NULL)
> +               e->q_back->q_forw = e->q_forw;
>  }
> Index: arch/vax/stdlib/insque.S
> ===================================================================
> RCS file: arch/vax/stdlib/insque.S
> diff -N arch/vax/stdlib/insque.S
> --- arch/vax/stdlib/insque.S    5 Jul 2013 21:10:50 -0000       1.4
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,40 +0,0 @@
> -/*     $OpenBSD: insque.S,v 1.4 2013/07/05 21:10:50 miod Exp $ */
> -
> -/*
> - * Copyright (c) 1983, 1993
> - *     The Regents of the University of California.  All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - *    notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - *    notice, this list of conditions and the following disclaimer in the
> - *    documentation and/or other materials provided with the distribution.
> - * 3. Neither the name of the University nor the names of its contributors
> - *    may be used to endorse or promote products derived from this software
> - *    without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> - * SUCH DAMAGE.
> - *
> - * From: "@(#)insque.s 8.1 (Berkeley) 6/4/93"
> - */
> -
> -/* insque(new, pred) */
> -
> -#include "DEFS.h"
> -
> -ENTRY(insque, 0)
> -       insque  *4(%ap), *8(%ap)
> -       ret
> Index: arch/vax/stdlib/remque.S
> ===================================================================
> RCS file: arch/vax/stdlib/remque.S
> diff -N arch/vax/stdlib/remque.S
> --- arch/vax/stdlib/remque.S    5 Jul 2013 21:10:50 -0000       1.4
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
> @@ -1,40 +0,0 @@
> -/*     $OpenBSD: remque.S,v 1.4 2013/07/05 21:10:50 miod Exp $ */
> -
> -/*
> - * Copyright (c) 1983, 1993
> - *     The Regents of the University of California.  All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - *    notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - *    notice, this list of conditions and the following disclaimer in the
> - *    documentation and/or other materials provided with the distribution.
> - * 3. Neither the name of the University nor the names of its contributors
> - *    may be used to endorse or promote products derived from this software
> - *    without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> - * SUCH DAMAGE.
> - *
> - * From: "@(#)remque.s 8.1 (Berkeley) 6/4/93"
> - */
> -
> -/* remque(entry) */
> -
> -#include "DEFS.h"
> -
> -ENTRY(remque, 0)
> -       remque  *4(%ap),%r0
> -       ret

Reply | Threaded
Open this post in threaded view
|

Re: insque/remque bugs

Philip Guenther-2
In reply to this post by Philip Guenther-2
On Sun, Aug 10, 2014 at 5:58 PM, Philip Guenther <[hidden email]> wrote:
...

> So, complete diff.  This also zaps the unnecessary casts in the .c files.


This has been committed; thank for the patch.

Philip Guenther
enh
Reply | Threaded
Open this post in threaded view
|

Re: insque/remque bugs

enh
thanks. i've (after a long delay) switched Android over.

thanks also for adding 'e' support to fopen (et cetera) --- i've been
meaning to ask about that for months!

current stats in Android's libc:

libc/upstream-freebsd/lib/: 39 files
libc/upstream-netbsd/lib/: 46 files
libc/upstream-openbsd/lib/: 220 files

On Thu, Aug 14, 2014 at 9:16 PM, Philip Guenther <[hidden email]> wrote:

> On Sun, Aug 10, 2014 at 5:58 PM, Philip Guenther <[hidden email]> wrote:
> ...
>>
>> So, complete diff.  This also zaps the unnecessary casts in the .c files.
>
>
> This has been committed; thank for the patch.
>
> Philip Guenther
>



--
Elliott Hughes - http://who/enh - http://jessies.org/~enh/
Java i18n/JNI/NIO, or bionic questions? Mail me/drop by/add me as a reviewer.