From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.org!not-for-mail
From: Ken Brown <kbrown@cornell.edu>
Newsgroups: gmane.emacs.bugs
Subject: bug#16901: 24.3.50; emacs_backtrace.txt
Date: Tue, 04 Mar 2014 09:23:39 -0500
Message-ID: <5315E1EB.8060404@cornell.edu>
References: <b93ed3b6-293d-44cd-959a-3933ccb4bcae@default>
	<831tylvkq2.fsf@gnu.org>
	<CAAeL0SRk9UcAWk2rG-8zMspSn94LRnn4cXrc_iJbPt84cgRLOQ@mail.gmail.com>
	<83lhwstu1k.fsf@gnu.org> <83ppm3rznz.fsf@gnu.org>
	<53150E29.7080504@cornell.edu> <83iorusk3h.fsf@gnu.org>
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: ger.gmane.org 1393943051 26110 80.91.229.3 (4 Mar 2014 14:24:11 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Tue, 4 Mar 2014 14:24:11 +0000 (UTC)
Cc: 16901@debbugs.gnu.org, lekktu@gmail.com, dmantipov@yandex.ru
To: Eli Zaretskii <eliz@gnu.org>
Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Mar 04 15:24:18 2014
Return-path: <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org>
Envelope-to: geb-bug-gnu-emacs@m.gmane.org
Original-Received: from lists.gnu.org ([208.118.235.17])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org>)
	id 1WKqGX-0007or-Kj
	for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Mar 2014 15:24:17 +0100
Original-Received: from localhost ([::1]:45259 helo=lists.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org>)
	id 1WKqGX-0006dc-2d
	for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Mar 2014 09:24:17 -0500
Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45946)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1WKqGP-0006d5-Ik
	for bug-gnu-emacs@gnu.org; Tue, 04 Mar 2014 09:24:14 -0500
Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1WKqGJ-0001MO-RF
	for bug-gnu-emacs@gnu.org; Tue, 04 Mar 2014 09:24:09 -0500
Original-Received: from debbugs.gnu.org ([140.186.70.43]:48709)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1WKqGJ-0001MI-N1
	for bug-gnu-emacs@gnu.org; Tue, 04 Mar 2014 09:24:03 -0500
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80)
	(envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1WKqGI-0001Hv-Bp
	for bug-gnu-emacs@gnu.org; Tue, 04 Mar 2014 09:24:02 -0500
X-Loop: help-debbugs@gnu.org
Resent-From: Ken Brown <kbrown@cornell.edu>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@gnu.org
Resent-Date: Tue, 04 Mar 2014 14:24:02 +0000
Resent-Message-ID: <handler.16901.B16901.13939430364936@debbugs.gnu.org>
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: followup 16901
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: moreinfo
Original-Received: via spool by 16901-submit@debbugs.gnu.org id=B16901.13939430364936
	(code B ref 16901); Tue, 04 Mar 2014 14:24:02 +0000
Original-Received: (at 16901) by debbugs.gnu.org; 4 Mar 2014 14:23:56 +0000
Original-Received: from localhost ([127.0.0.1]:49891 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
	id 1WKqGB-0001HV-6o
	for submit@debbugs.gnu.org; Tue, 04 Mar 2014 09:23:55 -0500
Original-Received: from limerock01.mail.cornell.edu ([128.84.12.99]:42624)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <kbrown@cornell.edu>) id 1WKqG8-0001HM-0W
	for 16901@debbugs.gnu.org; Tue, 04 Mar 2014 09:23:52 -0500
X-CornellRouted: This message has been Routed already.
Original-Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu
	[10.16.197.9])
	by limerock01.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id
	s24ENouR010072; Tue, 4 Mar 2014 09:23:51 -0500
Original-Received: from [192.168.1.5] (cpe-67-249-194-47.twcny.res.rr.com
	[67.249.194.47]) (authenticated bits=0)
	by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id
	s24ENnGo028277
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT);
	Tue, 4 Mar 2014 09:23:50 -0500
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
	rv:24.0) Gecko/20100101 Thunderbird/24.3.0
In-Reply-To: <83iorusk3h.fsf@gnu.org>
X-BeenThere: debbugs-submit@debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x
X-Received-From: 140.186.70.43
X-BeenThere: bug-gnu-emacs@gnu.org
List-Id: "Bug reports for GNU Emacs,
	the Swiss army knife of text editors" <bug-gnu-emacs.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/bug-gnu-emacs>,
	<mailto:bug-gnu-emacs-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/archive/html/bug-gnu-emacs>
List-Post: <mailto:bug-gnu-emacs@gnu.org>
List-Help: <mailto:bug-gnu-emacs-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/bug-gnu-emacs>,
	<mailto:bug-gnu-emacs-request@gnu.org?subject=subscribe>
Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org
Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org
Xref: news.gmane.org gmane.emacs.bugs:86529
Archived-At: <http://permalink.gmane.org/gmane.emacs.bugs/86529>

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