[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
generating vtables
- To: <mark>, <michael>, <eric>, <dean>, <ravi>
- Subject: generating vtables
- From: Chris Hibbert <hibbert>
- Date: Sun, 16 Dec 90 01:44:27 PST
- Cc: <xtech>
(If you don't understand the context for this message, ask me or
someone in the to: list. You missed an adventure)
I think the mystery is solved. I started by catting cxcvrx.cxx and
cxcvrs.cxx together, and then removing things until I could figure
out what triggered the vtable. It's not a simple rule. It looks like
it might be a combination of the first method in a class definition
and at least one constructor or destructor. You say that combination
isn't guaranteed to appear anywhere? Isn't that the symptoms we had?
So (on Dean's advice) I modified the vtbl hack (a distinct first
method in each class) which someone else wrote so it's now a
constructor. That meant that any class would have a method defined
somewhere that is BOTH the first method and a constructor. This
solved the problem with the missing vtbl, but it looks like some
classes were depending on not having an explicit constructor, so
they'd get a default one. I don't know how to solve this part.
The only solution I can see is to move DEFINE_CLASS_CATEGORY(class)
(the replacement for the various DEFINE...CLASS(class) macros we had
before) back into the *x.cxx files. I'm going to go home and go to
bed. I'll come back tomorrow, and help implement whatever solution
someone else decides on. Besides, I still have some hacking to do on
the image to finish fixing RECEIVE_HOOK. (Thanks for the help Dean,
that'll save me some time tomorrow.)
Chris
PS If you want to repeat some of my experiments, you could do worse
than starting with cxcvrShort.cxx which is in ~eric/xu/alpha-9a/xpp.