Commit Graph

5429 Commits

Author SHA1 Message Date
Peter Edberg
643e8756c8
ICU-20065 Prevent crash on Collator::makeInstance fail when optimized, add test 2018-09-27 14:27:38 -07: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
Steven R. Loomis
23389e756c
ICU-13685 c: add @preview (retry) (#8)
* ICU-13685 - add a @preview tag in Doxygen

* Change @internal to @preview for existing tech preview sites

ICU-13685
2018-09-27 14:27:37 -07:00
Jeff Genovy
02a2c9cce9
ICU-20036 CurrencyPluralInfo class improve handling of OOM errors (#17)
ICU-20036 CurrencyPluralInfo class doesn't always check/handle OOM errors.

Changes include:
- Using LocalPointer instead of raw new/delete, in order to make the code cleaner.
- Using nullptr instead of NULL.
- Inspired by Andy's review feedback PluralRules changes, this change sets fPluralRules and fLocale to nullptr in the assignment operator in order to prevent possible double deletes in the failure case.
- More consistent about not checking for nullptr when calling delete.
- Using LocalUResourceBundlePointer in order to simply the code and not need manual deletes.
- Reduce memory usage by using the same LocalUResourceBundle with .getAlias() instead of allocating new ones.
2018-09-27 14:27:37 -07:00
Jeff Genovy
c9573ab075
ICU-20046 Improve OOM error checking in the RBNF class. (#24)
- There are a few locations in the RBNF class that don't check for out-of-memory (OOM) failures.
- Using LocalPointer to clean up the manual deletes.
- Change to use nullptr instead of NULL.
- A few minor typo fixes as well.
2018-09-27 14:27:37 -07:00
Jeff Genovy
d07396f94d
ICU-20041 Improve handling of OOM failures in NumberingSystem class. (#19)
ICU-20041 ICU4C NumberingSystem class doesn't handle out-of-memory (OOM) failures.

- Not all code paths in the NumberingSystem class check for OOM failures. This can lead to crashes in some cases as null pointers will be dereferenced without any checks.
- Change to use nullptr instead of NULL.
- Don't stomp on OOM errors when attempting to load resources. We should report back OOM to the caller.
- Use LocalPointer in order simplify the code and for automatic clean-up of memory.
- Use LocalUResourceBundlePointer as well to help simply things even more.
2018-09-27 14:27:37 -07:00
Jeff Genovy
3712aa3d6e
ICU-13810 Fix typo in datefmt.h macro. (#36) 2018-09-27 14:27:37 -07:00
Jeff Genovy
a9a19fc229
ICU-20044 Fix some OOM issues in the NumberFormat class. (#21) 2018-09-27 14:27:37 -07:00
Jeff Genovy
8edc6ba107
ICU-20042 Improve OOM handling in PluralRules class. (#20)
- PluralRules class doesn't handle out-of-memory (OOM) errors in some code paths.
- The clone and assignment operator (operator=) methods of construction don't take an error code  parameter, meaning that if an OOM error occurs during the constructor, it will not reported back to the caller, and the caller has no way to know that the object is in a half-constructed state.
- Using an internal status variable for these above cases.
- Changes to the various PluralRules helper classes to check for OOM as well.
- Using nullptr instead NULL.
- Using LocalPointer instead of raw new/delete in some cases.
- Need to set mRules to nullptr, otherwise we can end up with double deletes in the failure case. (Thanks to Andy for the review).
- Using default member initializers for class members to avoid dangling pointers. Also allows for using default constructors too.
2018-09-27 14:27:37 -07:00
Andy Heninger
35ce5296c1
ICU-13810 Doxygen warning cleanup. 2018-09-27 14:27:37 -07:00
Jeff Genovy
b12a927c93 ICU-13778 DataTimePatternGenerator code refactor. Handle Out-of-Memory (OOM) errors, use LocalPointer to prevent memory leaks when OOM occurs, use an internal error code to better report errors during clone and copy construction, mark helper methods and parameters as const, use nullptr instead of NULL, minor spelling and formatting changes. (Note: All tests pass on Windows and Linux).
X-SVN-Rev: 41552
2018-06-27 19:25:52 +00:00
Shane Carr
4bc6ad328b ICU-13850 Fixing behavior of ICU4C DecimalFormat#setCurrency() to accept an empty string.
X-SVN-Rev: 41549
2018-06-23 02:09:42 +00:00
Shane Carr
3f7a4aa202 ICU-13840 Fixing memory overflow issue in number_decimalquantity.cpp and adding tests.
X-SVN-Rev: 41541
2018-06-19 21:52:52 +00:00
Peter Edberg
733e363203 ICU-13823 ICU 62.1 BRS, update measurement unit constants for release-33-1-d03 (deletes VES)
X-SVN-Rev: 41528
2018-06-15 01:12:52 +00:00
Shane Carr
ba800ab7bd ICU-13835 Fixing C++17 compiler error.
X-SVN-Rev: 41523
2018-06-14 20:29:11 +00:00
Fredrik Roubert
1af5762873 ICU-13818 Add virtual destructor for class TokenConsumer.
X-SVN-Rev: 41519
2018-06-13 17:00:44 +00:00
Andy Heninger
04d300adeb ICU-13828 DecimalFormat Error Code handling cleanups.
X-SVN-Rev: 41515
2018-06-11 03:56:58 +00:00
Andy Heninger
2f534730c9 ICU-13816 Windows compiler warning fix.
X-SVN-Rev: 41504
2018-06-04 21:04:14 +00:00
Andy Heninger
c0f9d2eeef ICU-13807 ICU 62 No Data Testing fixes. Mostly to test code.
X-SVN-Rev: 41500
2018-06-01 01:19:38 +00:00
Shane Carr
dd7667d330 ICU-13804 Making number parsing code more robust when given empty symbol strings.
X-SVN-Rev: 41497
2018-06-01 00:31:54 +00:00
Shane Carr
08134fc59e ICU-13667 Making =delete APIdocs consistent in numberformatter.h
X-SVN-Rev: 41495
2018-05-31 22:04:08 +00:00
Shane Carr
404a06a0f8 ICU-13667 Fixing incorrect version tag on scale() setter.
X-SVN-Rev: 41493
2018-05-31 21:32:35 +00:00
Shane Carr
6b7022632b ICU-13667 Making new DecimalFormat constructor private.
X-SVN-Rev: 41489
2018-05-30 21:27:07 +00:00
Markus Scherer
438f1f363b ICU-13667 LocalizedNumberFormatterAsFormat is in the old Format class hierarchy, add ClassID boilerplate; NoUnit move virtual destructor up into first-virtual position, right after constructors
X-SVN-Rev: 41487
2018-05-30 19:15:02 +00:00
Peter Edberg
16519f2643 ICU-13667 ICU 62rc BRS, update guard conditionals for non-stable API part 1 (i18n pass 1)
X-SVN-Rev: 41486
2018-05-30 18:39:29 +00:00
Norbert Runge
781154c113 ICU-13667 Moves digits_t, DEFAULT_THRESHOLD, and copyErrorTo() outside of U_HIDE_INTERNAL_API.
X-SVN-Rev: 41485
2018-05-30 14:40:13 +00:00
Shane Carr
29937704cd ICU-8610 Responding to number skeleton code review feedback.
X-SVN-Rev: 41483
2018-05-30 03:34:41 +00:00
Peter Edberg
8d17fb0e1b ICU-13667 ICU 62rc BRS, update measurement unit constants
X-SVN-Rev: 41481
2018-05-30 01:22:52 +00:00
Jeff Genovy
b6a793bafd ICU-13788 Fixing issue with accidental UErrorCode conversion to UBool.
X-SVN-Rev: 41472
2018-05-29 01:59:42 +00:00
Jeff Genovy
1662340d17 ICU-13788 Remove trailing semicolon that causes compiler warning.
X-SVN-Rev: 41471
2018-05-27 03:08:42 +00:00
Jeff Genovy
d23af4f072 ICU-13788 Fix compiler error C4251 on Windows (MSVC, Clang, MinGW).
X-SVN-Rev: 41470
2018-05-27 03:07:57 +00:00
Jeff Genovy
530744ae3b ICU-13667 Update filters for VS project file for numberformatter.
X-SVN-Rev: 41469
2018-05-26 19:23:18 +00:00
Markus Scherer
c6c8b7201a ICU-13630 update spoof checker inclusion/recommended sets from Unicode 9 to Unicode 11
X-SVN-Rev: 41466
2018-05-25 23:39:01 +00:00
Shane Carr
c3c21d1fe9 ICU-13788 Fixing number_decimfmtprops C++ dependency issue.
X-SVN-Rev: 41465
2018-05-25 22:54:48 +00:00
Shane Carr
0b1aa193fc ICU-13788 Fixing numparse_impl C++ dependency issues.
X-SVN-Rev: 41464
2018-05-25 21:29:59 +00:00
Jeff Genovy
f23cbfa975 ICU-13667 Update ICU4C version number for 62.1 release candidate.
X-SVN-Rev: 41463
2018-05-25 21:29:10 +00:00
Markus Scherer
d8f9a47637 ICU-13667 update/fix/improve dependencies; better layering formatting->numberparser->numberformatter->number_representation
X-SVN-Rev: 41461
2018-05-25 17:57:30 +00:00
Jeff Genovy
87122b9084 ICU-13775 Fix build issues on MinGW and Clang-for-Windows (with exported template instantiations).
X-SVN-Rev: 41460
2018-05-25 07:27:56 +00:00
Shane Carr
bf977d1acc ICU-13788 Minor coverity fixes for number code.
X-SVN-Rev: 41459
2018-05-25 03:01:38 +00:00
Shane Carr
4beed11456 ICU-13722 Removing obsolete constructs FmtStackData and UCONFIG_FORMAT_FASTPATHS_49.
X-SVN-Rev: 41457
2018-05-25 00:26:00 +00:00
Shane Carr
79b8248092 ICU-13677 Fixing up apidoc strings for precision setting.
X-SVN-Rev: 41456
2018-05-24 21:28:11 +00:00
Peter Edberg
5b3c14c29d ICU-12936 Make RelativeDateTimeFormatter handle offset of -0
X-SVN-Rev: 41451
2018-05-24 05:52:01 +00:00
Shane Carr
8e1dc1f3b1 ICU-13736 Change number parsing to require locale currency when using non-currency parse function.
X-SVN-Rev: 41450
2018-05-24 04:35:16 +00:00
Shane Carr
6f50303084 ICU-13788 Fixing data types in numparse_decimal.cpp; should fix MSVC test failure.
X-SVN-Rev: 41443
2018-05-23 21:59:30 +00:00
Shane Carr
2af33b7796 ICU-13763 Makes FieldPositionIterator offset by input string length in DecimalFormat, restoring ICU 61 behavior.
X-SVN-Rev: 41442
2018-05-23 21:08:53 +00:00
Shane Carr
0c8fed6bde ICU-13717 During SimpleDateFormat#parseInt, avoid cloning the DecimalFormat unless necessary.
X-SVN-Rev: 41440
2018-05-23 04:21:24 +00:00
Shane Carr
d0d8535066 ICU-13717 Adds fast path for RBNF, which is not affect by min/max integer digits.
X-SVN-Rev: 41439
2018-05-23 04:03:19 +00:00
Shane Carr
4931366afe ICU-13717 Adds "fast formatters" optimization to smpdtfmt.cpp to greatly improve the performance of SimpleDateFormat with the new number formatting pipeline.
X-SVN-Rev: 41438
2018-05-23 02:00:03 +00:00
Shane Carr
3e2bbc9834 ICU-13717 Fixes memory leak in date format parsing by moving cloning into the parseInt function.
X-SVN-Rev: 41437
2018-05-23 01:18:07 +00:00
Shane Carr
25d6d69068 ICU-13717 Moves NumberFormat cloning into the zeroPaddingNumber method. Also indirectly fixes a memory leak from the previous commit.
X-SVN-Rev: 41436
2018-05-23 01:04:17 +00:00