|Message: G4VUserTrackInformation is broken (or at least VERY fragile)||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
The interactions between G4Track and G4VUserTrackInformation are broken, and can easily lead to a segment violation. The problem is that G4Track::operator=() copies the pointer fpUserInformation and G4Track::~G4Track() deletes it. So if you ever copy one track to another and you have set a G4VUserTrackInformation pointer into the track, your program will die because it gets deleted twice.
Workaround: after copying the track to newTrack, do newTrack.SetUserInformation(0);
IMHO the fix is to change G4Track::operator=() to zero the pointer. Note that it does not know how to construct a new instance of the user's class. This will probably be OK, because the user probably set the pointer in UserTrackingAction or UserSteppingAction, and the new track will get a new UserTrackInfo object in the same way the original one did (well, at least MY code works that way (:-)). Note the copy constructor uses operator=(), as does CopyTrackInfo().
|Inline Depth:||Outline Depth:||Add message:|