RFR: 8341418: Prism/es2 DrawableInfo is never freed (leak) [v4]
Lukasz Kostyra
lkostyra at openjdk.org
Wed Oct 9 07:41:04 UTC 2024
On Tue, 8 Oct 2024 14:59:07 GMT, Thiago Milczarek Sayao <tsayao at 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);
>> }
>> }
>
> Thiago Milczarek Sayao has updated the pull request incrementally with one additional commit since the last revision:
>
> Review changes
Marked as reviewed by lkostyra (Committer).
-------------
PR Review: https://git.openjdk.org/jfx/pull/1586#pullrequestreview-2356308958
More information about the openjfx-dev
mailing list