Commit Graph

30503 Commits

Author SHA1 Message Date
Jeff Genovy
7756ee0446 ICU-20239 Add VS2015 build line to the Azure CI builds. 2018-11-12 16:44:44 -08:00
Markus Scherer
98f9170004 ICU-20250 make UnicodeSet(intprop=value) faster
- fastpath for UnicodeSet.add(new last range)
- fewer UnicodeSet memory allocations:
  initial internal list array, exponential array growth,
  allocate strings list/set only when first one is added
- faster CodePointTrie.getRange(): fewer calls to filter function
- revert UnicodeSet(intprop=value) from trie ranges to range starts + lookup
- cache per-int-prop range starts: fewer lookups
2018-11-12 16:05:57 -08:00
Jeff Genovy
be7c5dbcb0 ICU-20215 Conver the VSTS/Azure CI builds definitions to a YML file in the repo (similar to .travis.yml) 2018-11-11 16:30:01 -08:00
Jeff Genovy
401cdb46ef ICU-20238 Autodetect Visual Studio version, and autodetect the installed Windows 10 SDK version. 2018-11-08 16:46:36 -08:00
Shane Carr
e2882d961f ICU-13267 Minor documentation and test changes. 2018-11-08 17:13:39 -07:00
Shane Carr
11a559f319 ICU-13267 Refactoring field position testing logic into helper function.
Makes future field position logic easier to test.
2018-11-08 17:13:29 -07:00
Shane Carr
ba21ff79c4 ICU-13701 Syncs C and J increment rounding. Checks for nickel sooner. 2018-11-08 17:13:17 -07:00
Shane Carr
a1cc16ccd3 ICU-13701 Refactoring DecimalQuantity: removing lOptPos/rOptPos.
Combined ICU4C and ICU4J.
2018-11-08 02:43:31 -07:00
Markus Scherer
59006770ed ICU-20250 faster MutableCodePointTrie.build(): use a hashtable to find equal blocks in earlier parts of the compacted data & index arrays 2018-11-07 14:29:24 -08:00
Fredrik Roubert
93e84caa65 ICU-20169 Replace uprv_malloc() / uprv_free() with MemoryPool.
This resolves the immediate problem of brittle memory management
in the error handling code.

An obvious future improvement would be to replace the old C style
"plain struct with pointers" VariantListEntry, AttributeListEntry
and ExtensionListEntry with contemporary C++ style containers that
take care of ownership and memory management.
2018-11-07 17:58:14 +01:00
Fredrik Roubert
710212c495 ICU-20249 An internal helper class for stack allocated UResourceBundle. 2018-11-07 17:57:50 +01:00
Andy Heninger
92d0d1447f ICU-20172 Add ICU4C dependency checker to Travis CI 2018-11-06 17:50:37 -08:00
Jeff Genovy
9a5b7af83d ICU-13180 Support skiping building the UWP projects with a command line MSBuild option. 2018-11-06 16:02:03 -08:00
Markus Scherer
cee3c150ab ICU-20255 revert to reflection for methods not yet in Android API level 21..23 2018-11-06 08:05:37 -08:00
Fredrik Roubert
9877b633a2 ICU-20169 Use LocalULanguageTagPointer also inside of ultag_parse(). 2018-11-06 13:28:54 +01:00
Fredrik Roubert
9de0383cfa ICU-20202 Replace CodePointMatcherWarehouse with MemoryPool.
The shared templated helper class MemoryPool can be used to replace the
local helper class CodePointMatcherWarehouse, reducing the amount of
specialized code needed.
2018-11-05 13:37:10 +01:00
Andy Heninger
a96dc7faa5 ICU-10183 revert mutexes to platform code while sorting dependencies from std::mutex. 2018-11-02 15:59:03 -07:00
Andy Heninger
1bad36b91a ICU-20202 MemoryPool and uloc_key_type structs inherit from UMemory. Fixes dependencies on global operator new(). 2018-11-02 15:38:31 -07:00
Shane Carr
53d8c8f3d1 ICU-20246 Fixing another integer overflow in number parsing. 2018-10-31 13:37:09 -07:00
Andy Heninger
f71796d5e5 ICU-10183 Mutexes, add C++11 std::mutex based implementation. 2018-10-31 13:07:19 -07:00
Fredrik Roubert
91d38d14e8 ICU-20169 Use smart pointers in all locale code instead of u*_close().
Doing this consistently first will make it easier to then clean up
resource management and error handling later.
2018-10-31 17:51:53 +01:00
Fredrik Roubert
47ecbc4915 ICU-20158 Pass ByteSink from Locale::forLanguageTag() to uloc_forLanguageTag().
This eliminates the need for a scratch buffer in Locale::forLanguageTag()
and also the need for counting bytes required in uloc_forLanguageTag(),
something that ByteSink will now handle correctly.
2018-10-31 12:21:15 +01:00
Fredrik Roubert
5b4ac1c77d ICU-20202 Replace char* kwdBuf with MemoryPool<CharString>.
Instead of _appendLDMLExtensionAsKeywords() requiring to receive a pre-
allocated buffer of sufficient size to store all the temporary strings
it needs to store, have it use a MemoryPool<CharString> to allocate
storage space as needed.

Storing strings as individual CharString objects, instead of as NUL
delimited substrings in a contiguous memory area, also eliminates the
need for keeping track of string boundaries and NUL terminators.
2018-10-30 23:27:11 +01:00
Yoshito Umaoka
12a71c7dcb ICU-20245 tzdata2018g updates 2018-10-30 18:14:03 -04:00
Jeff Genovy
f76f68aeaa ICU-20221 Add support for building with Cygwin/GCC to the AppVeyor CI builds. 2018-10-30 10:26:07 -07:00
Fredrik Roubert
964a8eb036 ICU-20202 Replace UVector with MemoryPool in uloc_keytype.
By moving the required call to uhash_close() into the destructor of
LocExtKeyData and using CharString instead of raw chunks of bytes
allocated with uprv_malloc(), it becomes easier to guarantee that
memory handling is correct, without leaks or overflows.

With the need for custom deleter functions removed, the code doesn't use
any of the additional functionality provided by UVector, it just needs a
simple way to keep track of allocated objects to delete them after it's
done using them, which MemoryPool does in a simpler and typesafe way.
2018-10-30 17:06:56 +01:00
Fredrik Roubert
440d8b3be8 ICU-20202 Replace UVector with MemoryPool in CalendarDataSink.
CalendarDataSink doesn't use any of the additional functionality
provided by UVector, it just needs a simple way to keep track of
allocated objects to delete them after it's done using them.
2018-10-30 17:01:10 +01:00
Shane Carr
f8c09f776a ICU-20231 Adding tests for accounting with variable currency widths. 2018-10-29 16:29:06 -07:00
Shane Carr
fd5faeb48b ICU-20159 Fixing gcc warnings in project and test code. 2018-10-29 16:28:54 -07:00
Shane Carr
8018eb84e7 ICU-13701 Adding custom logic for nickel rounding, C and J.
Avoids expensive arithmetic when performing nickel rounding for currencies such as CAD, CHF, and DKK.
2018-10-29 16:28:42 -07:00
Jeff Genovy
5a34bfb151 ICU-20209 Fix build failures on Windows with std::atomic not in enclosing namespace std
Also: Change to use the ICU namespace macro instead, and skip doxygen as well.
2018-10-29 15:07:05 -07:00
Fredrik Roubert
b8d2d92d36 ICU-20202 Replace CharStringPool with MemoryPool.
The shared templated helper class MemoryPool is a drop-in replacement
for the local helper class CharStringPool, with a simpler implementation
and an interface that allows parameters to be passed to the constructor.
2018-10-29 22:58:33 +01:00
Fredrik Roubert
d62f5ae5d8 ICU-20202 Add an internal helper class to own heap allocated objects.
This will be used first to replace existing locally defined memory
management helper classes such as CharStringPool (uloc_tag.cpp) and
CodePointMatcherWarehouse (numparse_affixes.h), then in new code.
2018-10-29 22:26:29 +01:00
Fredrik Roubert
21a8698951 ICU-20235 Undefine OVERFLOW in case Microsoft math.h has defined it. 2018-10-29 12:07:16 +01:00
Jeff Genovy
3d86d24a68 ICU-20240 Fix Windows build failure in japancal.cpp 2018-10-26 14:12:24 -07:00
Jeff Genovy
13ad1fe4e0 ICU-20194 TimeZone createSystemTimeZone doesn't set error code on OOM error. 2018-10-25 15:22:38 -07:00
Fredrik Roubert
59fe4f4be2 ICU-20132 Pass ByteSink from Locale::toLanguageTag() to uloc_toLanguageTag().
This eliminates the need for a scratch buffer in Locale::toLanguageTag()
and also the need for counting bytes required in uloc_toLanguageTag(),
something that ByteSink will now handle correctly and thereby
eliminating the bug where too few bytes required was returned.
2018-10-25 21:04:47 +02:00
Fredrik Roubert
8b7fa6a03f ICU-20228 Revert file from commit 10e79698d7.
This file was changed by mistake (and not caught by the presubmit tests
because of unrelated build failures).
2018-10-24 23:26:00 +02:00
Fredrik Roubert
10e79698d7 ICU-20228 Fix common typos for "language". 2018-10-24 20:54:10 +02:00
Shane Carr
aa898cc042 ICU-11511 Adding tests for CLDR-10103 scientific notation spec changes. 2018-10-23 17:46:33 -07:00
Yoshito Umaoka
48d3ad0d39 ICU-20224 tzdata2018f updates. 2018-10-19 22:15:18 -04:00
Frank Tang
fa3ab39671 ICU-20109 Upgrade Java RelativeDateTimeFormatter QUARTER to @draft
(#221)

add tests for AbsoluteUnit.QUARTER
2018-10-19 15:38:36 -07:00
Fredrik Roubert
0da942bd52 ICU-20080 Avoid strange compiler behaviour in ASSERT_EQUAL() macro.
Using temporary variables for the two values to be compared here makes
GCC compile the code just like we expect it to. (What it really is that
it otherwise does on some architechtures remains a mystery.)

This will make the tests pass as expected also on IA-32 with GCC.

It'll also make it possible to revert the old workaround for SPARC
introduced by commit 5b0592af79.

Tested:

Linux gcc45 3.16.0-5-686-pae #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08) i686 GNU/Linux

Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
g++ (Debian 4.9.2-10+deb8u1) 4.9.2

Linux gcc202 4.16.0-1-sparc64-smp #1 SMP Debian 4.16.5-1 (2018-04-29) sparc64 GNU/Linux

clang version 4.0.1-10+sparc64 (tags/RELEASE_401/final)
g++ (Debian 8.2.0-7) 8.2.0
2018-10-19 11:45:09 +02:00
Jeff Genovy
9ec2c332c1 ICU-20208 uspoof.cpp function checkImpl should be static, regenerate urename.h 2018-10-18 16:38:28 -07:00
Andy Heninger
47b3922b59 ICU-20212 unistr.h, review comments from Markus for doc formatting. 2018-10-18 10:01:51 -07:00
Andy Heninger
f3ce5a33be ICU-20212 Tweaks to markdown API docs in unistr.h 2018-10-18 10:01:51 -07:00
Andy Heninger
7918e54d30 ICU-20212 Markdown API docs in unistr.h 2018-10-18 10:01:51 -07:00
Ken Brown
31b89b5484 ICU-20214 Fix namespace error on Cygwin 2018-10-17 19:31:08 -07:00
Shane Carr
d60ebc020e ICU-20166 Adding commit-checker tool.
This tool checks the integrity of a range of commits, in particular references to the corresponding Jira issues.

Squashed commits:

ICU-20119 Adding first commit report.
ICU-20166 Handling tickets that do not require commits.
ICU-20166 Search Jira issues from extra commits
ICU-20119 Updating commit report.
ICU-20166 Adding copyright to commit checker tools.
ICU-20119 Updating commit report.
ICU-20166 Require ticket at beginning of commit message.
ICU-20119 Updating commit report.
ICU-20119 Updating commit report.
ICU-20119 Updating commit report.
ICU-20120 Updating commit report.
ICU-20166 Removing REPORT.md from source control.
2018-10-17 15:58:40 -05:00
Andy Heninger
e509105c9b
ICU-20205 RelativeDateTimeFormatter pt data fix, improved error handling and test. (#210)
* ICU-20205 Add locale test for RelativeDateTimeFormatter.

* ICU-20205 Fix error in pt relative date data. Improve error handling in code.

* ICU-20205 Add instantiation test & regen data from ICU4C

* ICU-20205 Added DateFormatSymbols error check per jefgen's comments.
2018-10-12 16:19:14 -07:00