delorie.com/archives/browse.cgi | search |
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 |
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 |
> > 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.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |