On Tue, 1 Oct 2024 17:37:15 GMT, Thiago Milczarek Sayao <tsa...@openjdk.org> wrote:
> 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); > } > } Reviewers: @arapte @lukostyra ------------- PR Comment: https://git.openjdk.org/jfx/pull/1586#issuecomment-2391977594