[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Inheritance query

Struan Gray (struan.gray@sljus.lu.se) writes:

>     I'm confused.  I got the point that if you don't have any INIT or
> CLEANUP method when the first instance of an object is created, it is
> impossible to add one later in the same session, but your article
> seems to imply that it is impossible to modify those methods either,
> even if they successfully compile and run the first time round.  I do
> the latter all the time; in fact, it's one of the joys of non-blocking
> widgets.  The class *structure* can't be edited, but the lifecyle
> methods can (IDL 5.2.1 on MacOS if it matters).

Yes. I ran out of time yesterday and put that article up
before I had tested everything one more time. I was writing
it from sketchy notes I had made in recent IDL courses. I'll
do more careful editing today. 

But I think you are right that the INIT and CLEANUP
methods can be edited once they have been properly
associated with the object. Frankly, in classes, 
once we get the damn things to work we don't touch
them anymore. :-)

>     If the INIT or CLEANUP methods crash so that I get bounced back to
> the command line with the offending routine opened for editing, IDL
> seems to be in a very odd state, but typing RETALL and HEAP_GC several
> times (at least twice) gets me back to the point where I can
> sucessfully edit and recompile.

Ah, of course. Now I see why this feature is undocumented. :-)

I think I'll stick with my suggestion to exit IDL.
At least I can come up with a believable story
for *that* recommendation.

>     A final tip: it is worth including an INIT and CLEANUP routine for
> all top-level classes (ie, those that don't inherit anything).  If you
> don't, IDL rummages around in your currently-defined search path
> looking for one every time you create or destroy an instance of that
> class, which can severely degrade performance.

Yes, I meant to include this caveat and just completely forgot.
Thanks for reminding me. I'll do it now.


David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155