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

Home » Public Forums » archive » Re: Object Data and pointer assignments
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: Object Data and pointer assignments [message #19314 is a reply to message #19310] Thu, 09 March 2000 00:00 Go to previous messageGo to previous message
John-David T. Smith is currently offline  John-David T. Smith
Messages: 384
Registered: January 2000
Senior Member
Ben Tupper wrote:
>
> David Fanning wrote:
>
>> You don't leak any memory because IDL is managing this
>> whole process for you. (Remember, these pointers are
>> not real pointers in the C sense. They are really
>> glorified variables in the IDL sense.) This is the
>> bestest feature of IDL pointers. :-)
>>
>
> Thanks for the tips. It's probably a good thing that I don't know much about
> C (no bad habits, eh?)
>
>>
>> If you overwrite the pointer like this:
>>
>> self.InArray = Ptr_New(newStruct)
>>
>> you *will* leak memory because now you destroyed the
>> only reference to that pointer area of memory. You could
>> do this:
>>
>>
>
> So, if I am following your instruction correctly, I should only see ...
>
> self.InArray = Ptr_New(newStruct)
>
> once in my code in the INIT function. Thereafter (in SetProperty for
> example) it is simply derefence....
>
> *self.inarray = newStruct
>

Just to be clear... you are free to free self.inarray, and point it somewhere
else, at any time. This can be useful if you have a list which is either empty
(NULL pointer a.k.a. a dangling reference), or not (pointer to a list of finite
size). If the list changes size, and becomes empty again, you can simply free
it, which indicates its emptiness. If it then grows again, simply use ptr_new()
to get another heap variable for it. So, while it might be easiest in some
cases only to call ptr_new() once, in other cases it is useful to let a single
member variable like self.inarray point to different heap variables over its
life.

Good Luck,

JD


--
J.D. Smith |*| WORK: (607) 255-5842
Cornell University Dept. of Astronomy |*| (607) 255-6263
304 Space Sciences Bldg. |*| FAX: (607) 255-5875
Ithaca, NY 14853 |*|
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Q: contour levels from IDL
Next Topic: Re: IDL and Linux on dual processor

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

Current Time: Sat Nov 29 05:56:00 PST 2025

Total time taken to generate the page: 0.13502 seconds