Subject: Re: bug#18438: 24.4.50; assertion failed in bidi.c

From: Ken Brown <[email-masked]>
Date: Tue, 30 Sep 2014 12:09:32 -0400

On 9/30/2014 11:24 AM, Eli Zaretskii wrote:
> OK, so far so good.  How about the one below (which tries to reveal
> the face of the beast)?
>
> === modified file 'src/bidi.c'
> --- src/bidi.c	2014-04-06 15:56:01 +0000
> +++ src/bidi.c	2014-09-30 15:21:28 +0000
> @@ -326,7 +326,12 @@ bidi_get_type (int ch, bidi_dir_t overri
>   static void
>   bidi_check_type (bidi_type_t type)
>   {
> -  eassert (UNKNOWN_BT <= type && type <= NEUTRAL_ON);
> +  if (!(suppress_checking || (UNKNOWN_BT <= type && type <= NEUTRAL_ON)))
> +    {
> +      fprintf (stderr, "\r\n%s:%d: bidi type %d is not in [%d..%d]\r\n",
> +	       __FILE__, __LINE__, type, UNKNOWN_BT, NEUTRAL_ON);
> +      emacs_abort ();
> +    }
>   }
>
>   /* Given a bidi TYPE of a character, return its category.  */

Wouldn't it make sense for him to first see if your recent fix of the 
"Current trunk aborts with MinGW" problem also fixes the present bug? 
We speculated previously that these strange assertion violations might 
be a result of the w32_msg stuff not being thread safe.

Ken