GNU bug report logs -
#16901
24.3.50; emacs_backtrace.txt
Previous Next
Reported by: Drew Adams <drew.adams <at> oracle.com>
Date: Fri, 28 Feb 2014 04:58:02 UTC
Severity: normal
Tags: moreinfo
Merged with 16899,
16908
Found in version 24.3.50
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 3/3/2014 10:45 PM, Eli Zaretskii wrote:
>> Date: Mon, 03 Mar 2014 18:20:09 -0500
>> From: Ken Brown <kbrown <at> cornell.edu>
>> CC: 16901 <at> debbugs.gnu.org, dmantipov <at> 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
This bug report was last modified 9 years and 148 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.