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

Re: Inheritance query

David Fanning, davidf@dfanning.com writes:

> I'm just about done with an article explaining
> this phenomemon in more detail. It should be up
> on my web page later today.

    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).

    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.

    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.