bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#16901: 24.3.50; emacs_backtrace.txt


From: Ken Brown
Subject: bug#16901: 24.3.50; emacs_backtrace.txt
Date: Tue, 04 Mar 2014 09:23:39 -0500
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

On 3/3/2014 10:45 PM, Eli Zaretskii wrote:
Date: Mon, 03 Mar 2014 18:20:09 -0500
From: Ken Brown <kbrown@cornell.edu>
CC: 16901@debbugs.gnu.org, dmantipov@yandex.ru

If adj == 0 in line 1596, then we've allocated much more memory than
we needed, and the next call to malloc (line 1602) allocates even
more.  And if adj == 1 in line 1596, then we've allocated exactly as
much memory as we needed, so there's no need to call malloc again in
line 1602.

Thanks for reviewing.

These are further optimizations, and can (and probably should) be done
in separate commits.  But you aren't saying that the previous code was
correct, are you?

No, I think it was clearly wrong. By accident, however, it probably worked most of the time and didn't waste memory, since adj is usually 0.

When/if you do the optimizations I suggested, I think it would clarify the code if `adj' were used to represent the actual adjustment needed, something like this:

  adj = (uintptr_t) alignment - result % alignment;
  if (adj == alignment)
    adj = 0;

Ken





reply via email to

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