RFR: JDK-8293776 : Adds CSS 4 and 8 digits hex coded Color [v14]
ScientificWare
duke at openjdk.org
Fri Aug 11 15:45:03 UTC 2023
> This is referenced in Java Bug Database as
> - [JDK-8293776 : Adds CSS 4 and 8 digits hex coded Color](https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8293776)
>
> This is tracked in JBS as
> - [JDK-8293776 : Adds CSS 4 and 8 digits hex coded Color](https://bugs.openjdk.java.net/browse/JDK-8293776)
>
> Adds the 4 and 8 digits color hex notations to CSS.java, as described in :
> CSS Color Module Level 4
> W3C Candidate Recommendation Snapshot, 5 July 2022
> [6.2 The RGB Hexadecimal Notations: `#RRGGBB`](https://www.w3.org/TR/css-color-4/#hex-notation)
>
> Designed from : [ScientificWare JDK-8293776 : Adds CSS 4 and 8 digits hex coded Color](https://github.com/scientificware/jdk/issues/13)
ScientificWare has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 29 commits:
- Merge branch 'master'
CSS.java :
Removes assigning values inside the if-condition
Extracts the assignments into separate line.
Hex3468DigitsColor.java :
Adds a message to result in case of failure only
- Updates copyright date.
Updates copyright date to 2023.
- Updates copyright date.
Updates copyright date to 2023.
- Update imports
Remove java.util.Pattern and add java.util.Map imports
- Performance improvement
Performance results came from my repository I mentioned in the header.
The code before this PR ran in 230ms.
Our previous codes ran in 1 200ms to 1800 ms with String + formatted + %n$s usage.
They ran in 350ms to 380ms with String + formatted + %s usage.
And in 100ms to 110ms if we replace String + format with a string concatenation.
Now the code below gives the same results in 36ms and with all our expected behaviors. Since we control notation length we
can bypass some controls,
directly generate the color value,
without generate a new string,
and reject a wrong number format without generate any exception.
- Corrects a value in a message.
A message is added to the result in case of failure only. The updated code does not output the actual value. The tested color is #f12a instead of #f00a.
- Simplifications of the test.
Removes individual color tests and only compares the RGB value.
- Renames an identifier.
Suggested change, not to use `l` as an identifier because it could be confused with `1`.
This part of code could change and be replaced by bits right rotation after performance tests.
- Corrects Licence Header.
Removes Classpath exception.
- Corrects typos and digit extraction.
Corrects typos.
And applies a better digit extraction as suggested in main-line review thread.
- ... and 19 more: https://git.openjdk.org/jdk/compare/6ffc0324...d72cb9fc
-------------
Changes: https://git.openjdk.org/jdk/pull/10317/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10317&range=13
Stats: 127 lines in 2 files changed: 92 ins; 16 del; 19 mod
Patch: https://git.openjdk.org/jdk/pull/10317.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/10317/head:pull/10317
PR: https://git.openjdk.org/jdk/pull/10317
More information about the client-libs-dev
mailing list