emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Windows 9X crash (was: [PATCH] Override Windows default Win-* key co


From: Eli Zaretskii
Subject: Re: Windows 9X crash (was: [PATCH] Override Windows default Win-* key combinations when using Emacs)
Date: Fri, 15 Jan 2016 10:08:13 +0200

(Adding Fabrice, who wrote the new allocator code, to the discussion.)

> Cc: address@hidden
> From: Jussi Lahdenniemi <address@hidden>
> Date: Fri, 15 Jan 2016 09:52:38 +0200
> 
> On 15.1.2016 8.56, Jussi Lahdenniemi wrote:
> >> The first thing I'd like to know is what buffer is
> >> that (I'm guessing *scratch* or *Messages*), and what is the value of
> >> 'a' in this call frame:
> >
> > the value of the name variable in the Fget_buffer_create function is "
> > *load*", and a in frame #4 is 0x02a22101.
> 
> Ah, of course; when allocating 'b' in Fget_buffer_create, Emacs got the 
> pointer 0x...fc, which is NOT aligned at an 8-byte boundary as required 
> by USE_LSB_TAG.  This messes up the tags and causes the crash.
>
> So, apparently, on Windows 98 HeapAlloc does not guarantee 8-byte 
> alignment of memory.  Not that this would be documented anywhere...

Right, this can explain everything.  It probably means that a build
configured --with-wide-int should also be tested there, as it has
different alignment needs.

> How should we fix this?  I can write and test the fix, but I'd like to 
> hear your opinion on the preferred mechanism.

What fix did you have in mind?  Over-allocating and recording the
offset in the initial part of the block that we don't pass to the
application?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]