From owner-freebsd-hackers Fri Aug 21 00:27:08 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id AAA24109 for freebsd-hackers-outgoing; Fri, 21 Aug 1998 00:27:08 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from mrelay.jrc.it (mrelay.jrc.it [139.191.1.65]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id AAA24096 for ; Fri, 21 Aug 1998 00:27:03 -0700 (PDT) (envelope-from nick.hibma@jrc.it) Received: from elect8 (elect8.jrc.it [139.191.71.152]) by mrelay.jrc.it (LMC5688) with SMTP id JAA23845; Fri, 21 Aug 1998 09:26:16 +0200 (MET DST) Date: Fri, 21 Aug 1998 09:26:15 +0200 (MET DST) From: Nick Hibma X-Sender: n_hibma@elect8 Reply-To: Nick Hibma To: Warner Losh cc: FreeBSD hackers mailing list Subject: Re: Realloc fix for review In-Reply-To: <199808210309.VAA26640@harmony.village.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > #include > > void * > frealloc(void *ptr, size_t size) > { > void *nptr; > > nptr = realloc(ptr, size); > if (!nptr && ptr) > free(ptr); > return (nptr); > } > > which does try to avoid calling free(NULL). > > Warner What about using a define in stdlib.h: #define reallocf(ptr, size) \ { \ void *nptr; \ nptr = realloc(ptr,size); \ if ( !nptr && ptr ) \ free(ptr) \ nptr \ } Or at least, something along those lines. Nick P.S.: About name space pollution: What about calling it reallocAndFreeAfterwardsIfReallocFails You won't need a man page... -- building: 27A address: STA-ISIS, T.P.270, Joint Research Centre, 21020 Ispra, Italy tel.: +39 332 78 9549 fax.: +39 332 78 9185 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message