When creating a Scene, a `DrawableInfo` is allocated with `malloc`. When scene 
changes, this is called on `WindowStage.java`:

`QuantumRenderer.getInstance().disposePresentable(painter.presentable);   // 
latched on RT`

But the underlying `DrawableInfo` is never freed.

I also think this should be done when the Stage is closed.

To test:

import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;

public class TestScenes extends Application {

    @Override
    public void start(Stage stage) {
        Timeline timeline = new Timeline(
                new KeyFrame(Duration.millis(100), e -> 
stage.setScene(createScene("Scene 1", Color.RED))),
                new KeyFrame(Duration.millis(200), e -> 
stage.setScene(createScene("Scene 2", Color.BLUE))),
                new KeyFrame(Duration.millis(300), e -> 
stage.setScene(createScene("Scene 3", Color.GREEN)))
        );

        timeline.setCycleCount(Animation.INDEFINITE);
        timeline.play();

        stage.show();
    }

    private Scene createScene(String text, Color color) {
        return new Scene(new StackPane(), 400, 300, color);
    }

    public static void main(String[] args) {
        launch(TestScenes.class, args);
    }
}

-------------

Commit messages:
 - Remove Debug printfs
 - MonocleGLDrawable seems to not require dispose
 - Improve draft
 - Improve draft
 - Improve draft
 - Improve draft
 - Possible (incomplete) fix for es2 drawable leak

Changes: https://git.openjdk.org/jfx/pull/1586/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1586&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8341418
  Stats: 141 lines in 13 files changed: 112 ins; 26 del; 3 mod
  Patch: https://git.openjdk.org/jfx/pull/1586.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1586/head:pull/1586

PR: https://git.openjdk.org/jfx/pull/1586

Reply via email to