On Fri, 1 Aug 2025 21:49:54 GMT, Kevin Rushforth <[email protected]> wrote:
>> modules/javafx.graphics/src/main/java/com/sun/prism/mtl/MTLFBOTextureData.java
>> line 34:
>>
>>> 32:
>>> 33: @Override
>>> 34: public void dispose() {
>>
>> There is something wrong here: this method does not call `super.dispose()`.
>> Is it by design (a comment would be nice then).
>>
>> The `MTLTextureData.dispose()` calls
>> `MTLResourceFactory.releaseTexture(pTexture);` which will not be called id
>> the context is disposed of.
>
> There is a comment just below (line 39) that explains it. Maybe adding an
> explicit "so no need to call super.dispose()" to the comment would be helpful.
Appended the comment as suggested.
>> modules/javafx.graphics/src/main/java/com/sun/prism/mtl/MTLRTTextureData.java
>> line 40:
>>
>>> 38: mtlContext.flushVertexBuffer();
>>> 39: }
>>> 40: super.dispose();
>>
>> since the call to `super.dispose() `is conditional, are you sure it always
>> behaves as expected?
>
> It looks like it's probably OK, but only because the superclass method has
> the same check that this one does. If you care relying on that, you will want
> to document that assumption, although it might be cleaner to just call
> `super.dispose()` unconditionally.
Changed to call `super.dispose()` unconditionally. It is safe as
`super.dispose()` method also has same check.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1824#discussion_r2251256000
PR Review Comment: https://git.openjdk.org/jfx/pull/1824#discussion_r2251265785