X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=mmalloc%2Fdetach.c;h=1780679417d5f052ec0e1927d33efdc29a2c99a9;hb=de4112fa387b662c7c7a1dd3e334a1274ca54d28;hp=69661bc4b51fdb98cb7a220ca148c6aade74c499;hpb=63abb1e790d634cba4162c2997f2ae330d63b703;p=deliverable%2Fbinutils-gdb.git diff --git a/mmalloc/detach.c b/mmalloc/detach.c index 69661bc4b5..1780679417 100644 --- a/mmalloc/detach.c +++ b/mmalloc/detach.c @@ -3,23 +3,25 @@ Contributed by Fred Fish at Cygnus Support. fnf@cygnus.com -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. +This file is part of the GNU C Library. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ -#include -#include "mmalloc.h" +#include +#include "mmprivate.h" /* Terminate access to a mmalloc managed region by unmapping all memory pages associated with the region, and closing the file descriptor if it is one @@ -37,7 +39,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ PTR mmalloc_detach (md) - void *md; + PTR md; { struct mdesc mtemp; @@ -49,16 +51,17 @@ mmalloc_detach (md) /* Now unmap all the pages associated with this region by asking for a negative increment equal to the current size of the region. */ - if ((mtemp.morecore (&mtemp, mtemp.base - mtemp.top)) == NULL) + if ((mtemp.morecore (&mtemp, mtemp.base - mtemp.breakval)) == NULL) { - /* Update the original malloc descriptor with any changes */ + /* Deallocating failed. Update the original malloc descriptor + with any changes */ *(struct mdesc *) md = mtemp; } else { if (mtemp.flags & MMALLOC_DEVZERO) { - (void) close (mtemp.fd); + close (mtemp.fd); } md = NULL; } @@ -66,6 +69,3 @@ mmalloc_detach (md) return (md); } - - -