X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f From: sandmann AT clio DOT rice DOT edu (Charles Sandmann) Message-Id: <10205161914.AA17309@clio.rice.edu> Subject: Re: Malloc/free DJGPP code To: djgpp-workers AT delorie DOT com Date: Thu, 16 May 2002 14:14:16 -0500 (CDT) In-Reply-To: <4839-Thu16May2002215006+0300-eliz@is.elta.co.il> from "Eli Zaretskii" at May 16, 2002 09:50:07 PM X-Mailer: ELM [version 2.5 PL2] Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > > It cannot be told to supply a negative increment, thus reducing > > the portion supplied (question, not statement)? > > The DJGPP implementation of sbrk does accept a negative argument, but > it doesn't return that memory to the system. Correct, it just internally changes the pointer but knows internally that it's still there and available. When you have multiple memory zones, which may not be contiguous, if you pass a negative argument which spans those zones really bad things happen. So negative arguments only work for the unixy sbrk, or standard sbrk for increments which don't step over a block boundary. It might be possible to make sbrk() return these blocks to DPMI, but I have no plans to revisit that ugly assembler code unless something's badly broken.