comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: dynamic memory in call_external
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: dynamic memory in call_external [message #14163 is a reply to message #14157] Tue, 26 January 1999 00:00 Go to previous messageGo to previous message
David Foster is currently offline  David Foster
Messages: 341
Registered: January 1996
Senior Member
Mark Rivers wrote:
>
> In article <88lnirufne.fsf@catspaw.jpl.nasa.gov>, Vapuser <vapuser@catspaw.jpl.nasa.gov> writes:
>>
>>
>> I have someone in my office who wants to know:
>>
>> Is it advisable to create and destroy memory within a CALL_EXTERNAL
>> routine? (that is, can one safely use malloc and free?) Or must one
>> make the routine(s) in question LINKIMAGE routines and the idl memory
>> management routines (IDL_MEMAlloc, IDL_MEMfree and IDL_GetScratch)
>> available in that environment.
>
> No, you should not create and destroy memory within CAll_EXTERNAL. The reason
> is that when you use CALL_EXTERNAL you are passed only the address of the data
> storage part of the IDL variable. You are not passed other important pieces of
> information for that variable, such as how big it is, what the data type is,
> etc. If you create and destroy memory you will only change the pointer, but
> not the other descriptive information. It might work OK if you are sure you
> won't change the size or type of the IDL variable, but I would not bet on it.
>

I think we should be clear what we are talking about. I believe the
question was whether one can safely use malloc() and free() to
allocate and free memory *within* a CALL_EXTERNAL module, and the
answer to this is yes. But you cannot allocate memory for variables
that you intend to pass back to IDL (the well-known rule that you
have to allocate all arguments before passing them to CALL_EXTERNAL).

If we don't clarify this distinction I think people will get confused.

Dave
--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
David S. Foster Univ. of California, San Diego
Programmer/Analyst Brain Image Analysis Laboratory
foster@bial1.ucsd.edu Department of Psychiatry
(619) 622-5892 8950 Via La Jolla Drive, Suite 2240
La Jolla, CA 92037
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Concurrent CORBA calls
Next Topic: Check mark on menu bar pull down item?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 08:10:32 PDT 2025

Total time taken to generate the page: 0.32166 seconds