The home of the ICU project source code.
Find a file
Tim Chevalier 4f0c2ca71c ICU-22261 Remove MF2 formatter caching optimization
The implementation was keeping a cache of FormatterFactory
    objects so that subsequent calls to the same formatter re-use the
    same object.
    The problem is that this is unsafe, because
    `MFFunctionRegistry::getFormatter()` returns a non-const `FormatterFactory*`;
    so if the caller deleted the resulting pointer, the formatter cache
    would contain a dangling pointer.
    
    This optimization was added because of an ICU4J test that checked for
    the presence of the optimization. However, for separate reasons
    (making `adoptFormatter()` actually adopt its argument), this test
    was already removed.
    
    The caching could be re-added later if that optimization is needed,
    but for now, remove it (also, no tests were checking for its presence).
2024-04-05 13:14:34 -07:00
.ci-builds ICU-22597 Add MSVC build bot to build ICU4C without exceptions 2024-03-07 16:14:16 +01:00
.github ICU-22261 Add UCONFIG_NO_MF2 flag that can be used to disable MessageFormat 2 functionality 2024-03-28 08:48:35 -07:00
docs ICU-22534 BRS75 J Serialization test data 2024-03-26 08:51:38 -04:00
icu4c ICU-22261 Remove MF2 formatter caching optimization 2024-04-05 13:14:34 -07:00
icu4j ICU-22534 Updating pom version to 75.1-SNAPSHOT 2024-04-04 09:45:56 -07:00
tools ICU-11396 new properties Identifier_Status & Identifier_Type 2024-03-20 13:20:14 -07:00
vendor/double-conversion ICU-22325 Update double-conversion to v3.3.0 2023-09-28 14:31:16 +02:00
.bazeliskrc ICU-22220 update root collation from CLDR 43 2023-02-22 17:13:13 -08:00
.bazelrc ICU-21107 Specify language standard versions C11 & C++17 also for Bazel. 2024-01-17 16:26:57 +09:00
.cpyskip.txt ICU-22690 Update ICU4J MessageFormatter to the latest spec, LDML 45 2024-03-22 14:39:02 -07:00
.gitattributes ICU-20717 move small files out of lfs: .dat, .gz, .gif 2020-09-17 11:09:48 -07:00
.gitignore ICU-22690 Update ICU4J MessageFormatter to the latest spec, LDML 45 2024-03-22 14:39:02 -07:00
CONTRIBUTING.md ICU-22677 update CONTRIBUTING.md 2024-02-26 11:44:35 -06:00
KEYS ICU-22351 Update PGP key information for release signing 2023-04-13 08:17:47 +05:30
LICENSE ICU-22677 update LICENSE and README.md and pom.xml 2024-02-26 14:34:59 -06:00
README.md ICU-22533 Update badges for CI pipelines, user guide docs about CI 2024-03-22 12:18:47 +05:30
SECURITY.md ICU-22410 Add security policy 2023-06-14 13:54:42 -07:00
WORKSPACE ICU-21117 Use Bazel to automate generation of Unicode data files 2021-03-24 10:39:38 -07:00

International Components for Unicode

This is the repository for the International Components for Unicode. The ICU project is under the stewardship of The Unicode Consortium.

ICU Logo

🔴🔴🔴 Special Notice About Branch Renaming 🔴🔴🔴

Around March 24-25, 2021 we renamed the master branch to main. You may need to rename your branch in your local git repo and change your normal git command to reflect this change. See also https://github.com/github/renaming

Build Status (main branch)

Build Status
GitHub Actions (ICU4C) GHA ICU4C
GitHub Actions (ICU4J) GHA ICU4J
Azure Pipelines (ICU4C) Build Status
Azure Pipelines (ICU4J) Build Status
Azure Pipelines (Exhaustive Tests) Build Status
Github Actions (Valgrind) ![GHA CI Valgrind]](https://github.com/unicode-org/icu/actions/workflows/icu_valgrind.yml?query=workflow%3A%22GHA+CI%22+branch%3Amain)
Fuzzing Fuzzing Status
OpenSSF Scorecard OpenSSF Scorecard

Subdirectories and Information

Copyright © 2016-2024 Unicode, Inc. Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the United States and other countries.

The project is released under LICENSE.

A CLA is required to contribute to this project - please refer to the CONTRIBUTING.md file (or start a Pull Request) for more information.