[Rev 01] RFR: 8235772: Remove use of deprecated finalize method from PiscesRenderer and AbstractSurface

Kevin Rushforth kcr at openjdk.java.net
Fri Feb 7 18:38:41 UTC 2020


On Fri, 7 Feb 2020 12:32:26 GMT, Ambarish Rapte <arapte at openjdk.org> wrote:

>> modules/javafx.graphics/src/main/java/com/sun/pisces/JavaSurface.java line 46:
>> 
>>> 45:         initialize(dataType, width, height);
>>> 46:         addDisposerRecord();
>>> 47:     }
>> 
>> Should this be called from the superclass instead? It works as-is, but if there were ever another subclass added, it would have to be replicated there as well.
> 
> `AbstractSurface.nativePtr` is needed to create the `AbstractSurfaceDisposerRecord`.
> It is created and set by the native method `initialize(dataType, width, height);` invoked at line 45 in the `JavaSurface` constructor.
> It is the reason `addDisposerRecord()` is needed here.

Oh, I see. The native initialize method in the subclass is writing into a private field in the superclass. Can you add a comment to this effect, since it isn't obvious without reading the native code?

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

PR: https://git.openjdk.java.net/jfx/pull/66


More information about the openjfx-dev mailing list