This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: fopen/fclose
- From: Andrew Lunn <andrew dot lunn at ascom dot ch>
- To: Jurica Baricevic <jura at intesis dot hr>
- Cc: Ecos <ecos-discuss at sources dot redhat dot com>
- Date: Mon, 25 Mar 2002 09:32:59 +0100
- Subject: Re: [ECOS] fopen/fclose
- References: <NFBBJGOLDDDGJPLCMJKNOEFDCEAA.jura@intesis.hr>
On Fri, Mar 22, 2002 at 05:01:07PM +0100, Jurica Baricevic wrote:
> Hi!
>
> I have a quite simple question regarding memory allocation/deallocation in
> fopen/fclose :-)
>
> It seems that fopen() creates stream with new operator (fopen.cxx:133):
> stream = new Cyg_StdioStream(....);
>
> while its pair fclose() destroys it with the following combination
> (fclose.cxx:101):
> stream->~Cyg_StdioStream();
> free(stream);
>
> I wonder what could be the reason for not using delete operator in fclose()
> instead?
Have a look at infra/current/src/delete.cxx.
CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS is enabled by default since most
eCos programs don't do dynamic stuff with memory. They create what
they need at startup and keep it forever. Hence the delete operator is
not needed.
FILE operations are the exception to this.
Andrew
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss