This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: emacs and large-address awareness under recent snapshots


On Aug  8 19:07, Eliot Moss wrote:
> On 8/8/2011 5:17 PM, Ken Brown wrote:
> 
> >do
> >newsize *= 2;
> >while ((__malloc_size_t) BLOCK ((char *) result + size) > newsize);
> >
> >My guess now is that there was some invalid pointer arithmetic somewhere that led to this, but I
> >don't have time at the moment to look for it. I'll do it later (or tomorrow) if no one beats me to it.
> 
> Possibly, Ken. I also wonder about signed vs unsigned calculations
> and such. We are looking at the higher end of the address space,
> which means negative addresses when considered as signed numbers.
> 
> I'm not sure what the above is doing, but if it is trying to
> double its understanding of the heap size, based on using the
> current end of the heap (result?) as a measure of size, then
> if the heap is at 0x80000000, doubling that gives 0 in a 32-bit
> address space ...

The question is, how could newsize ever become >= 0x80000000?
Ken, what are the values of result and size?  And what value has
heapsize?  Consider that the statement before the loop is

  newsize = heapsize;


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]