On Tue, 22 Nov 2022 21:09:50 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

>> - Remove unsupported/unnecessary SuppressWarning annotations
>> - Remove reduntant type specifications (use diamond operator)
>> - Remove unused or duplicate imports
>> - Remove unnecessary casts (type is already correct type or can be autoboxed)
>> - Remove unnecessary semi-colons (at end of class definitions, or just 
>> repeated ones)
>> - Remove redundant super interfaces (interface that is already inherited)
>> - Remove unused type parameters
>> - Remove declared checked exceptions that are never thrown
>> - Add missing `@Override` annotations
>
> modules/javafx.graphics/src/main/java/com/sun/javafx/application/LauncherImpl.java
>  line 783:
> 
>> 781:                     if (simulateSlowProgress) {
>> 782:                         for (int i = 0; i < 100; i++) {
>> 783:                             notifyProgress(currentPreloader, i / 100.0);
> 
> Does Eclipse really flag this as a warning? It doesn't seem a particularly 
> useful warning, since an explicit cast to double is a reasonable pattern that 
> can improve clarity, even if it isn't needed. In this specific case it is 
> pretty clear without the explicit cast that it will do what you want, but 
> other places are not so clear.

100.0 is a double, so the result is also a double

> modules/javafx.graphics/src/main/java/com/sun/javafx/font/PrismFontFile.java 
> line 1240:
> 
>> 1238:                 cadv = advanceWidths[numHMetrics-1];
>> 1239:             }
>> 1240:             return ((cadv & 0xffff)*ptSize)/upem;
> 
> This is an example where I think the explicit cast makes it easier to quickly 
> tell at a glance that it is correct, even though it happens to be 
> unnecessary. In this case, I would need to look at the definition of `ptSize` 
> and `upem` to know that it is unneeded, and thus correct without it.

Eclipse knows it is unnecessary.  Personally, I am in favor of removing such 
unnecessary code.

> modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/RotateGestureRecognizer.java
>  line 230:
> 
>> 228:             }
>> 229:             if (ROTATION_INERTIA_ENABLED && (state == 
>> RotateRecognitionState.PRE_INERTIA || state == 
>> RotateRecognitionState.ACTIVE)) {
>> 230:                 double timeFromLastRotation = (time - 
>> rotationStartTime) / 1000000;
> 
> Another place where I'm not sure removing the explicit cast is best (probably 
> OK here).

rotationStartTime is a double.  the type cast is really unnecessary

> modules/javafx.graphics/src/main/java/com/sun/prism/d3d/D3DTextureData.java 
> line 45:
> 
>> 43:                                boolean hasDepth)
>> 44:     {
>> 45:         return (long) physicalWidth * physicalHeight * 4L;
> 
> Another case where the old code might be clearer.

good catch - I think the change is not equivalent.  It should be either

4L * physicalWidth * physicalHeight;


or


((long)physicalWidth) * physicalHeight * 4L;


the proposed change might result in overflow bc the first intermediate result 
is likely to be int.

> modules/javafx.graphics/src/main/java/com/sun/prism/d3d/D3DVramPool.java line 
> 59:
> 
>> 57:     {
>> 58:         // REMIND: need to deal with size of depth buffer, etc.
>> 59:         return (long) width * height * 4;
> 
> Ditto

4L * w * h;

> modules/javafx.graphics/src/main/java/com/sun/prism/impl/ps/PaintHelper.java 
> line 310:
> 
>> 308:         shader.setConstants("fractions", stopVals, 0, 
>> MULTI_MAX_FRACTIONS);
>> 309:         float index_y = initGradient(paint);
>> 310:         shader.setConstant("offset", index_y / MULTI_CACHE_SIZE + 
>> HALF_TEXEL_Y);
> 
> Here's another.

index_y is a float, so the typecast is unnecessary

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

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

Reply via email to