Commit graph

42 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
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
fa30c0eeb4 ICU-21763 UVector cleanup, continued.
Revise uses of UVector in the next batch of files 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 primarily involve switching uses of UVector::addElementX() to the
new adoptElement() or addElement() functions, as appropriate, and using
LocalPointers for tracking memory ownership.
2021-11-30 09:12:16 -08:00
Andy Heninger
081cf77330 ICU-21662 Improve UVector error handling.
- Add updated versions of UVector::addElement() and ensureCapacity() that respect
  incoming errors.
  Follow on to c26aebe, which renamed the original versions.

- Add UVector::adoptElement() as a replacement for addElement() when the vector
  has a deleter function set, meaning that it adopts ownership of its elements.

  The intent is to make the behavior clearer at the call sites when looking
  at unfamiliar code.

- Make all functions with an incoming failure, as indicated by a UErrorCode parameter,
  leave the vector unchanged.

- Change all functions that store object pointers into the vector such that,
  when the store cannot be completed for any reason _and_ the vector has a deleter function,
  then the incoming object is deleted.

  This change can simplify the error handling code around calls to the affected functions
  (addElement() and insertElementAt(), in particular)

- Add index bounds checking on functions where it was possible - that is, on functions
  with both U_ErrorCode and index parameters.

- Changed to more modern C++ idioms in some parts of the UVector implementation.

- Review & update as required all uses of the UVector functions
  setElementAt(), insertElementAt(), setSize(), sortedInsert()
  these being the functions with changed behavior on error conditions
  (aside from addElement()).

This PR will be followed by more, switching call sites in various ICU services
from UVector::addElementX() (old behavior on errors)
to   UVector::addElement()  (new behavior on errors)
2021-09-02 19:15:36 -07: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
Markus Scherer
d3315d98ef ICU-20783 use C++ covariant return types 2019-08-23 11:45:36 -07:00
Fredrik Roubert
5d6d29b76a ICU-20601 Remove superfluous semicolons (-Wextra-semi-stmt).
These are the same changes for the C++ code as was done for the C code
by commit 17606e0345.
2019-08-15 12:30:21 +02: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
Markus Scherer
cf61e9823a ICU-13331 fix Java AlphabeticIndex.addIndexExemplars() for missing index exemplars (test for empty, not just null)
X-SVN-Rev: 40941
2018-02-16 19:48:49 +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
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
Markus Scherer
9edbbecb24 ICU-11339 add & use LocalPointer(p, errorCode) and adoptInsteadAndCheckErrorCode(p, errorCode)
X-SVN-Rev: 36757
2014-11-20 00:27:17 +00:00
Tom Zhang
ee1f29b584 ICU-7653 move LENGTHOF(array) to common, internal header
X-SVN-Rev: 36265
2014-08-28 14:55:34 +00:00
Markus Scherer
ec55298e96 ICU-11042 Han radical-stroke order data in the root collator instead of CJK tailorings, adjusted code & tests (merged from branches/markus/rootunihan)
X-SVN-Rev: 36162
2014-08-14 18:47:27 +00:00
Markus Scherer
e977c057a9 ICU-9101 merge branches/markus/collv2@35225 into the trunk
X-SVN-Rev: 35227
2014-02-25 21:21:49 +00:00
Markus Scherer
d511789345 ICU-9880 do not define a virtual destructor inline
X-SVN-Rev: 33342
2013-02-27 19:50:08 +00:00
Markus Scherer
9452d9ed08 ICU-9880 g++ does not seem to allow a class pointer field whose type is from an anonymous namespace
X-SVN-Rev: 33277
2013-02-20 20:57:54 +00:00
Markus Scherer
f5cd9984c6 ICU-9880 add ImmutableIndex, replace Chinese hacks and support zhuyin, handle index characters with multiple primary weights, lazy-create rarely-used objects, bug fixes, port other improvements from Java
X-SVN-Rev: 33245
2013-02-15 22:11:33 +00:00
Andy Heninger
686c8d47f9 ICU-9842 AlphabeticIndex: add constructor taking a collator.
X-SVN-Rev: 33148
2013-02-09 01:07:41 +00:00
Markus Scherer
22a342a545 ICU-9689 UObject::getDynamicClassID() const { return NULL; } and remove UOBJECT_DEFINE_NO_RTTI_IMPLEMENTATION -> easier to create new class hierarchies
X-SVN-Rev: 32776
2012-11-08 23:31:20 +00:00
Andy Heninger
803ac8f33c ICU-9461 Mutex Implementation Rework, merge from devel branch.
X-SVN-Rev: 32530
2012-10-05 21:22:02 +00:00
George Rhoten
89c00402a8 ICU-9474 Undo the changeset to reduce the exported C++ static variables.
X-SVN-Rev: 32299
2012-08-30 03:19:37 +00:00
George Rhoten
ce96470daf ICU-9474 Reduce the exported C++ static variables too.
X-SVN-Rev: 32159
2012-08-12 00:33:34 +00:00
George Rhoten
1384c72211 ICU-9456 Reduce writable/relocatable data.
X-SVN-Rev: 32149
2012-08-10 16:41:38 +00:00
Andy Heninger
9dbf80393c ICU-9009 For Alphabetic Index, add hard coded fall back in case there is no data available for defining the Labels.
X-SVN-Rev: 31424
2012-02-18 00:11:03 +00:00
Markus Scherer
43bb4f2cf4 ICU-8827 Unicode 6.1 update: svn merge branches/markus/uni61 at r31062 into the trunk
X-SVN-Rev: 31071
2011-12-08 22:37:24 +00:00
Markus Scherer
3a86b119b0 ICU-8246 add Normalizer2::getNFCInstance(), getNFKDInstance(), ...
X-SVN-Rev: 30994
2011-12-01 00:43:35 +00:00
Yoshito Umaoka
e9503bdade ICU-8909 Fixed various warnings reported by a source code analysis tool.
X-SVN-Rev: 30958
2011-11-14 19:32:51 +00:00
Steven R. Loomis
1e1f8509d8 ICU-8755 interim fix. MessagePattern still needs fixing.
X-SVN-Rev: 30505
2011-08-13 02:45:09 +00:00
Markus Scherer
2201fb816c ICU-7877 optionally explicit UnicodeString constructors, and make them explicit inside ICU
X-SVN-Rev: 30293
2011-07-07 18:46:19 +00:00
Andy Heninger
47a0559a84 ICU-8623 Remove extra include of <string>
X-SVN-Rev: 30291
2011-07-07 00:53:20 +00:00
Markus Scherer
744d1f3a19 ICU-8617 move UHashTok into lower-level uelement.h (new) and rename to UElement to share with UVector
X-SVN-Rev: 30272
2011-07-04 23:51:56 +00:00
Michael Ow
310c23c24e ICU-8578 Apply patch to fix some compiler warnings and related issues
X-SVN-Rev: 30205
2011-06-10 18:56:08 +00:00
Markus Scherer
9f7d74001c ICU-8605 document & test ICU4C dependencies, remove cycles, reduce some deps; merged from branches/markus/depstest -r 30155:30193
X-SVN-Rev: 30194
2011-06-03 05:23:57 +00:00
Andy Heninger
def8fdc070 ICU-7530 Add alphabetic index to windows projects
X-SVN-Rev: 29484
2011-02-27 18:55:17 +00:00
Andy Heninger
7b7f48eef8 ICU-7530 Alphabetic index, move from branch to trunk.
X-SVN-Rev: 29482
2011-02-25 22:21:30 +00:00