On Sat, 3 Sep 2022 03:26:05 GMT, ScientificWare <[email protected]> wrote:
>> 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).
Mmm I completely forgot that we're using the map here, and for that we'll need
to create a `new Color` from it. My b. There could be a check to
`colorNames.has(str)` and return the `new Color(colorNames.get(str))` since
there will never be a `null` returned for a valid key.
-------------
PR: https://git.openjdk.org/jdk/pull/9825