I have a JSplitPane to which I have added a JPanel as the left
component. When I open a movie file, that JPanel adds the QTComponent
to itself. Later on, I remove the movie and open a different one - if
I repeat this sequence a few times, my app crashes with a SIGBUS 10.
I am wondering if there is a specific teardown sequence I need to do
when closing/removing a movie to avoid this crash. I am also wondering
if putting the QTComponent's AWT representation inside a Swing
component could be to blame, although I've read it's ok to do that. Or
is it just trouble with JSplitPane.
1.4.2 on 10.3.8, building with XCode.
When I open a new movie, I do this:
movie.setRate(0); // stop movie
removeAll(); // remove this movie from the JPanel
String theURL = new String("file://" + fileName);
// create the DataRef that contains the information about where the
movie is
DataRef urlMovie = new DataRef(theURL);
movie = Movie.fromDataRef(urlMovie, StdQTConstants.newMovieActive);
mc = new MovieController (movie);
mc.setKeysEnabled (true);
myQTComponent = QTFactory.makeQTComponent(mc);
add(getVisualComponent());
GridBagConstraints mGridConstraints = new GridBagConstraints();
mGridConstraints.fill = GridBagConstraints.BOTH;
mGridConstraints.weightx = mGridConstraints.weighty = 1.0;
mGridConstraints.insets = new Insets(0, 0, 5, 5);
mGridBag.setConstraints(getVisualComponent(), mGridConstraints);
I could not seem to repro this problem if I use QTJComponent, but then
I don't get a movie controller, which I need to have.
Crash log:
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000