On Sat, 3 Sep 2022 01:33:02 GMT, SWinxy <[email protected]> wrote:

>> To avoid change method behaviour, I tried to reproduce previous behaviors 
>> because returned objects can be publicly exposed trough 
>> javax.swing.text.html.StyleSheet stringToColor method.
>> Previous implementation :
>> When, "" returns always the same object Color.Black.
>> When,  "black", "silver", "white", ...,  rgb colors defined ... returns a 
>> new object.
>> I haven't a example list in mind but at least Color1 == Color2 is different 
>> according implementation.
>
> I think Phil is talking about just `return`ing the result, which doesn't 
> change behavior. `""` can still `return Color.BLACK;` with the others 
> creating a new object, ditching the oddly-placed temporary `Color` object.

@SWinxy,
- if you're suggesting this
  ```
  } else {
              return colorNamed.get(strlc);
  ```
  We change the behavior (your comment) and lose the last test (color hex coded 
but without # prefix).
- or if you have in mind 

        } else {
                return new Color(colorNamed.get(strlc).color.getRGB(), true);

We preserve the behavior but still lose the last test (color hex coded but 
without # prefix).
- The way I interpreted @prrace comment :
  ```
          } else {
              Color color = colorNamed.get(strlc);
              if (color != null) {
                  return color;
  ```
  We change the behavior :
  - In the code before this PR. The results were : null, Color.Black if "", and 
new Color Object for all other colors (the 10 named colors and all hex coded 
colors).
  - In the first implementation achieved in this PR, like the code above, 
results changed to : null, Color.Black if "", the same Object for each (149) 
named-color or hex coded color.
  - After your comment, results became : null, Color.Black if "", and new Color 
Object for all other Color (149 named or hex coded).

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

PR: https://git.openjdk.org/jdk/pull/9825

Reply via email to