----------------------------------------------------------------------- Just to double check I am reverting to c:/ and rebuild again. In the unknown exception I had seen something related to TimeZone requesting from the OS, I would like to be sure that the crash is not time dependent by testing again. I'll let you know next time if the patch solves it for me too. Vincent. ---------------------------------------- > Date: Tue, 30 Sep 2014 18:58:46 +0300 > From: eliz@gnu.org > Subject: Re: bug#18591: 24.4.50; bootstrap-emacs crashes when trying to bytecompile tibetan.el > To: vincent.b.1@hotmail.fr > CC: 18591@debbugs.gnu.org > > > Date: Tue, 30 Sep 2014 18:52:19 +0300 > > From: Eli Zaretskii > > Cc: 18591@debbugs.gnu.org > > > > > From: Vincent Belaïche > > > Date: Tue, 30 Sep 2014 17:11:57 +0200 > > > Cc: Vincent Belaïche > > > > > > I am trying to build the latest (bzr update this morning) Emacs and it > > > fails when compiling language/tibetan.el with src/bootstrap-emacs.exe, > > > and what happens is a CRASH. > > > > Not reproducible here. I've just bootstrapped the latest trunk with > > no problems at all. > > I take it back. Emacs did bootstrap cleanly, but when I start it > interactively, I get the same exception 0xc0000029. > > But this is the same problem reported by Martin earlier today, and > already fixed on the emacs-24 branch. Apply the patch below and > rebuild. > > I'm not sure this will solve the bootstrap problem, though: that could > well be a separate issue, because I don't think the problem solved by > the patch below could happen in non-interactive invocations of Emacs, > which are the only kind used during the bootstrap. So after you apply > the patch, maybe try "make bootstrap" again, and see if it works this > time. > > > --- src/w32fns.c 2014-07-12 09:25:29 +0000 > +++ src/w32fns.c 2014-09-30 13:53:24 +0000 > @@ -1911,13 +1911,12 @@ w32_createscrollbar (struct frame *f, st > } > > static void > -w32_createwindow (struct frame *f) > +w32_createwindow (struct frame *f, int *coords) > { > HWND hwnd; > RECT rect; > - Lisp_Object top = Qunbound; > - Lisp_Object left = Qunbound; > - struct w32_display_info *dpyinfo = &one_w32_display_info; > + int top; > + int left; > > rect.left = rect.top = 0; > rect.right = FRAME_PIXEL_WIDTH (f); > @@ -1932,25 +1931,21 @@ w32_createwindow (struct frame *f) > > if (f->size_hint_flags & USPosition || f->size_hint_flags & PPosition) > { > - XSETINT (left, f->left_pos); > - XSETINT (top, f->top_pos); > + left = f->left_pos; > + top = f->top_pos; > } > - else if (EQ (left, Qunbound) && EQ (top, Qunbound)) > + else > { > - /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero > - for anything that is not a number and is not Qunbound. */ > - left = x_get_arg (dpyinfo, Qnil, Qleft, "left", "Left", RES_TYPE_NUMBER); > - top = x_get_arg (dpyinfo, Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER); > + left = coords[0]; > + top = coords[1]; > } > > FRAME_W32_WINDOW (f) = hwnd > = CreateWindow (EMACS_CLASS, > f->namebuf, > f->output_data.w32->dwStyle | WS_CLIPCHILDREN, > - EQ (left, Qunbound) ? CW_USEDEFAULT : XINT (left), > - EQ (top, Qunbound) ? CW_USEDEFAULT : XINT (top), > - rect.right - rect.left, > - rect.bottom - rect.top, > + left, top, > + rect.right - rect.left, rect.bottom - rect.top, > NULL, > NULL, > hinst, > @@ -2468,7 +2463,8 @@ w32_msg_pump (deferred_msg * msg_buf) > the patch for XP is not publicly available until XP SP3, > and older versions will never be patched. */ > CoInitialize (NULL); > - w32_createwindow ((struct frame *) msg.wParam); > + w32_createwindow ((struct frame *) msg.wParam, > + (int *) msg.lParam); > if (!PostThreadMessage (dwMainThreadId, WM_EMACS_DONE, 0, 0)) > emacs_abort (); > break; > @@ -4069,8 +4065,25 @@ static void > my_create_window (struct frame * f) > { > MSG msg; > + static int coords[2]; > + Lisp_Object left, top; > + struct w32_display_info *dpyinfo = &one_w32_display_info; > + > + /* When called with RES_TYPE_NUMBER, x_get_arg will return zero for > + anything that is not a number and is not Qunbound. */ > + left = x_get_arg (dpyinfo, Qnil, Qleft, "left", "Left", RES_TYPE_NUMBER); > + top = x_get_arg (dpyinfo, Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER); > + if (EQ (left, Qunbound)) > + coords[0] = CW_USEDEFAULT; > + else > + coords[0] = XINT (left); > + if (EQ (top, Qunbound)) > + coords[1] = CW_USEDEFAULT; > + else > + coords[1] = XINT (top); > > - if (!PostThreadMessage (dwWindowsThreadId, WM_EMACS_CREATEWINDOW, (WPARAM)f, 0)) > + if (!PostThreadMessage (dwWindowsThreadId, WM_EMACS_CREATEWINDOW, > + (WPARAM)f, (LPARAM)coords)) > emacs_abort (); > GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE); > } > > >