This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: fopen/fclose


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]