summaryrefslogtreecommitdiff
path: root/tests/writer_string.cpp
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-09-20 10:37:46 -0700
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-09-20 10:43:38 -0700
commitec0c9c5561785299d0c03ed05fe94e0031ba6487 (patch)
treed419f86bde522652621677dd3b45c0c54241cfaa /tests/writer_string.cpp
parentbda55c818c0936fe5e41e381794018f0fc60b1a3 (diff)
Implement custom string to integer conversion
This makes conversion significantly faster and removes more CRT dependencies; in particular, to support long long pugixml only requires the type itself (and the division operator...). New implementation is up to 3x faster on short decimal numbers. Note that unlike the old implementation, new implementation correctly handles overflow and underflow and clamps the value to the representable range. This means that there are some behavior changes - e.g. previously as_uint on "-1" would return INT_MAX instead of 0. In addition to CRT issues, for platforms with 64-bit long old implementation incorrectly truncated from long to int or unsigned int, so even if CRT clamped the values the result would have been incorrect.
Diffstat (limited to 'tests/writer_string.cpp')
0 files changed, 0 insertions, 0 deletions