Commit graph

61 commits

Author SHA1 Message Date
Fredrik Roubert
0178a07a26 ICU-22793 Clang-Tidy: google-readability-casting
https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-casting.html
2024-07-04 22:32:12 +02:00
Fredrik Roubert
ce052f52c2 ICU-22621 Clang-Tidy: readability-delete-null-pointer
https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/checks/readability/delete-null-pointer.html
2024-03-18 17:14:23 +01:00
Fredrik Roubert
53568e8dfc ICU-22520 Refactor CharString & CharStringByteSink into helper.
The repeated sequence of allocating a CharString and CharStringByteSink,
before calling some function that writes into this, can be moved into a
single shared helper function which then is used to give all ulocimp.h
functions that write to ByteSink an overload that instead returns a
CharString, to make call sites look like perfectly normal C++ code.
2024-03-05 23:44:50 +01:00
Fredrik Roubert
939f08f274 ICU-22520 Use C++ function signatures for internal C++ functions.
Some of this code was originally written as C code and some of this code
was originally written as C++ code but made to resemble the then already
existing code that had once been C code. Changing it all to normal C++
now will make it easier and safer to work with going forward.

· Use unnamed namespace instead of static.
· Use reference instead of non-nullable pointer.
· Use bool instead of UBool.
· Use constexpr for static data.
· Use U_EXPORT instead of U_CAPI or U_CFUNC.
· Use the default calling convention instead of U_EXPORT2.
2024-02-12 21:44:06 +01:00
Frank Tang
d93c7b60fc ICU-22568 return TimeZomeFormat::createInstance for bogus locale 2023-12-01 15:10:41 -08:00
Frank Tang
3d31e72633 ICU-22307 Fix crash inside TimeZone
Return while the status fail without checking and cause crash
2023-03-16 17:05:02 -07:00
Markus Scherer
b6dcc95d3c ICU-21833 remove redundant void parameter lists
See #2351
2023-03-02 09:31:57 -08:00
Fredrik Roubert
2de88f9d9c ICU-21833 Replace UChar with char16_t in all C++ code. 2023-02-06 19:27:44 +01:00
Fredrik Roubert
2e0d30cfcf ICU-21833 Replace NULL with nullptr in all C++ code. 2023-02-03 20:20:38 +01:00
Fredrik Roubert
030fa1a479 ICU-21148 Consistently use standard lowercase true/false everywhere.
This is the normal standard way in C, C++ as well as Java and there's no
longer any reason for ICU to be different. The various internal macros
providing custom boolean constants can all be deleted and code as well
as documentation can be updated to use lowercase true/false everywhere.
2022-09-07 20:56:33 +02:00
Andy Heninger
85705f04e0 ICU-21960 C++20 Warnings from ATOMIC_VAR_INIT
Remove the ICU macros ATOMIC_INT32_T_INITIALIZER and U_INITONCE_INITIALIZER,
which made use of C++ ATOMIC_VAR_INIT, which has been removed from C++20.

With modern C++ features being available, these macros no longer served
any real need.
2022-05-17 15:45:06 -07:00
Andy Heninger
f66c8ca36b ICU-21763 UVector cleanup in time zone code
Revise uses of UVector in time zone related code to better handle memory
allocation failures.  This is one of an ongoing series of commits to address
similar problems with UVector usage throughout ICU.

The changes involve switching uses of UVector::addElementX() to the new
adoptElement() or addElement() functions, as appropriate, and using
LocalPointers for tracking memory ownership.
2021-10-29 17:37:13 -07:00
Peter Edberg
e69f337f3c ICU-21669 UPRV_UNREACHABLE > UPRV_UNREACHABLE_EXIT/ASSERT, update usages 2021-09-14 15:22:52 -07:00
Peter Varga
1986dcd0d8 ICU-21734 Add missing overrides 2021-09-07 17:42:14 -07:00
yumaoka
369357aaa7 ICU-21530 Added U_HIDE_DEPRECATED_API to deprecated methods. 2021-09-03 09:04:54 -04:00
Fredrik Roubert
0a1cfa398c ICU-20973 Use standard keywords true & false to initialize type bool.
Now when all equality operators return standard bool (commit 633438f),
it no longer makes any sense to use the ICU4C constants TRUE & FALSE
or local variables of type UBool for their return value.
2021-08-26 18:53:10 +02:00
Fredrik Roubert
633438f8da ICU-20973 Change all equality operator return types from UBool to bool. 2021-08-17 00:35:00 +02:00
Andy Heninger
c26aebe802 ICU-21662 Rename UVector::addElement().
This is the first step towards improving the error handling and out-of-memory
behavior of UVector::addElement(). A followup PR will add back a new addElement()
with corrected error handling, then additional followups will switch call sites
from the original (renamed) function to the new addElement().

This commit includes no logic or behavior changes; it only renames the existing functions.
2021-07-28 15:36:50 -07:00
Erik Torres Aguilar
6eea259143 ICU-21018 Fix typos across repo that start with letter C
See #1525
2021-01-06 15:15:26 -08:00
Markus Scherer
f02b496494 ICU-20783 C++ covariant return types: clone(), freeze() & friends 2019-08-22 16:24:41 -07:00
Fredrik Roubert
aa60d4292e ICU-20601 Add missing semicolons.
The way these macros currently are defined, the code compiles also
without the final semicolons. But for consistency and in order to allow
the macro definitions to be updated also these macro invocations should
have final semicolons just like in the rest of this code base.
2019-08-09 14:38:52 +02:00
Andy Heninger
afa9b9b48e ICU-20588 UMutex, add cleanup of underlying mutexes, and simplify usage model 2019-05-24 13:24:59 -07:00
Andy Heninger
b772241b52 ICU-20520 UMutex refactoring.
- Use STATIC_NEW for mutex creation, to avoid order-of-destruction problems
    by avoiding destruction altogether, while avoiding memory leak reports.

  - Remove UConditionVar, replace with direct use of std::condition_variable
2019-05-07 13:50:49 -07:00
Fredrik Roubert
4bd1ee008c ICU-20445 Pass ByteSink to ulocimp_addLikelySubtags(). 2019-04-23 19:45:28 +02:00
Andy Heninger
bc4bb89af2 ICU-20488 mutex static constructor fixes.
Remove the dependencies from the ICU library code on static constructors
that were introduced by using std::mutex and condition variables. The
mutexes are lazily initialized by embedding them as local static variables
in getter functions, and relying on the C++ compiler/runtime to do thread
safe initialization of them.
2019-03-12 09:52:16 -07:00
Jeff Genovy
5c8960e59e ICU-20074 Revise UPRV_UNREACHABLE macro to always call abort().
Moved the macro from platform.h to uassert.h.
Removed any "unreachable" code that previously occurred after the UPRV_UNREACHABLE macro is used.
Changes based on review from Andy.

Co-authored-by: Daniel Ju <daju@microsoft.com>
2019-01-24 18:50:04 -08:00
Daniel Ju
7453181fff ICU-20074 Define UPRV_UNREACHABLE macro for unreachable code
Replaced occurrences of U_ASSERT(FALSE) with new UPRV_UNREACHABLE macro.
2019-01-14 14:16:26 -08:00
Daniel Ju
b13c951348
ICU-20043 ICU-13214 ICU-13764 MSVC W3 and W4 warning cleanup (#53)
Cleaned up all of the MSVC W3 warnings and most of the W4 warnings in the common and i18n projects.
2018-09-27 14:27:38 -07:00
Yoshito Umaoka
f6e3124e74 ICU-13445 Pattern space handling in localized GMT format parser. Applied a fix to ICU4J equivalent to the ICU4C fix done by #13374. Also made a small fix in the previous ICU4C change to prevent buffer overrun with unexpected input.
X-SVN-Rev: 40642
2017-10-25 23:41:57 +00:00
Peter Edberg
0b5b91a70b ICU-13366 Changes per Shane codereview comments
X-SVN-Rev: 40572
2017-10-05 20:36:07 +00:00
Peter Edberg
9ccab14af1 ICU-13366 part 1, fix TextTrieMap::search supplemental handling; make tz displayName buffer size bigger & logKnownIssue tests more specific
X-SVN-Rev: 40522
2017-10-02 03:42:54 +00:00
Yoshito Umaoka
1599dabb7c ICU-13374 Fixed localized GMT offset format roundtrip in Perisian locale.
X-SVN-Rev: 40493
2017-09-28 00:53:39 +00:00
William Zhao
00586e9f97 ICU-13275 Merge some safe warning fixes to the trunk
X-SVN-Rev: 40322
2017-08-08 19:51:54 +00:00
William Zhao
d847a21238 ICU-13275 Merge warning cleanup fixes into trunk
X-SVN-Rev: 40283
2017-07-22 01:11:59 +00:00
Markus Scherer
4c2fad3e36 ICU-12410 class Edits, class CaseMap with new low-level functions that work with Edits, simpler case properties code, some cleanup
X-SVN-Rev: 39684
2017-02-17 21:03:35 +00:00
Andy Heninger
242e02c388 ICU-12764 icu4c utf-8 source files, update Copyright notices.
X-SVN-Rev: 39583
2017-01-20 00:20:31 +00:00
Markus Scherer
3b23b78b95 ICU-12410 include what you use
X-SVN-Rev: 39553
2017-01-12 18:35:18 +00:00
Michael Ow
61607c2773 ICU-12564 Update copyright notice in trunk
X-SVN-Rev: 38848
2016-06-15 18:58:17 +00:00
Yoshito Umaoka
00ca13e126 ICU-12564 Reverted r38761 and r38762, because we want to prepend the Unicode copyright for existing source files, instead of replacing copyright comments.
X-SVN-Rev: 38776
2016-05-31 21:45:07 +00:00
Michael Ow
c9f199a30f ICU-12564 Update copyright notice in ICU4C
X-SVN-Rev: 38761
2016-05-26 22:32:17 +00:00
Yoshito Umaoka
ebe09a9e69 ICU-11294 Changed SimpleDateFormat and other implementation to reduce malloc calls for common date formatting/parsing operations.
X-SVN-Rev: 37064
2015-02-25 03:24:19 +00:00
Peter Edberg
47a97c8453 ICU-11412 TimeZoneFormat copy constructor should initialize fTZDBTimeZoneNames to NULL
X-SVN-Rev: 36842
2014-12-10 20:19:42 +00:00
Yoshito Umaoka
ae3f6f13a4 ICU-10934 The tz database abbreviation support in ICU4C
X-SVN-Rev: 36080
2014-07-23 21:51:09 +00:00
Steven R. Loomis
358e1ddcd2 ICU-10376 fixup clang warnings
X-SVN-Rev: 34385
2013-09-18 20:08:25 +00:00
Markus Scherer
8f38199123 ICU-10365 fix namespace issue: icu::UInitOnce
X-SVN-Rev: 34252
2013-09-10 00:34:12 +00:00
Yoshito Umaoka
434a94ec4d ICU-10209 Fixed odd TimeType problem with ZONE_ID, ZONE_ID_SHORT and EXEMPLAR_LOCATION in TimeZoneFormat#format. Also added generic TimeZoneFormat test cases.
X-SVN-Rev: 33819
2013-06-12 20:56:06 +00:00
Andy Heninger
978f71fe78 ICU-10051 Mutexes: introduce UInitOnce; remove UMTX_CHECK; replace all uses of UMTX_CHECK.
X-SVN-Rev: 33787
2013-05-31 23:50:15 +00:00
Andy Heninger
ae4350661b ICU-10048 Fix some compiler warnings in ICU4C.
X-SVN-Rev: 33444
2013-03-21 01:42:01 +00:00
Michael Ow
795b21007f ICU-9802 Fix no data cintltst and intltest failures
X-SVN-Rev: 33302
2013-02-22 03:24:01 +00:00
Yoshito Umaoka
87158d4fba ICU-9867 New time zone pattern letters/types support for CLDR 23/ICU 51.
X-SVN-Rev: 33159
2013-02-11 00:23:55 +00:00