Aaron Jacobs
d2618806ba
Fixed some snprintf-related build breakages in Visual Studio.
2013-08-08 23:08:28 +00:00
Aaron Jacobs
36400ac0c1
Updated two calls to sprintf that I missed in r269.
2013-08-08 00:39:32 +00:00
Aaron Jacobs
32ffb931e7
Replaced the complex implementation of valueToString(double).
...
The previous one was confusing and prone to buffer overflows, and didn't
work correctly with 16-decimal-digit numbers. The new one simply uses
snprintf with a standard format string.
The major change is that we don't always print a decimal point now.
Fortunately, JSON doesn't distinguish between integers and reals.
2013-08-08 00:39:12 +00:00
Aaron Jacobs
bb53cd0899
Added more floating point tests.
...
The first demonstrates a bug that I will soon fix.
2013-08-08 00:37:39 +00:00
Aaron Jacobs
4c531bb584
Added further floating point tests.
2013-08-08 00:13:10 +00:00
Aaron Jacobs
42d918b7aa
Switched away from sprintf, which is prone to buffer overflows.
...
Most reasonable platforms have this function. If you're here because
this broke the build for you, consider adding an ifdef for your platform
and using sprintf there (but not on other platforms).
2013-08-06 23:12:56 +00:00
Baptiste Lepilleur
700b38020e
- CMake: added option to turn fail compilation if warning occurs, and warning level 4 with MSVC.
...
- Fixed some warnings
2013-05-09 18:42:33 +00:00
Baptiste Lepilleur
58b6541478
Added missing source file to CMakeLists.txt.
2013-05-09 15:21:06 +00:00
Baptiste Lepilleur
eafd702a17
- New CMake based build system. Based in part on contribution from
...
Igor Okulist and Damien Buhl (Patch #14 ). Added support for running
tests and building with DLL on Windows.
- added missing JSON_API
- Visual Studio DLL: suppressed warning "C4251: <data member>: <type>
needs to have dll-interface to be used by..." via pragma push/pop
in json-cpp headers.
- New header json/version.h now contains version number macros
(JSONCPP_VERSION_MAJOR, JSONCPP_VERSION_MINOR, JSONCPP_VERSION_PATCH
and JSONCPP_VERSION_HEXA). While this header is generated by CMake,
it is committed to ease build with alternate build system
(CMake only update the file when it changes avoid issues with VCS).
2013-05-08 20:21:11 +00:00
Baptiste Lepilleur
f92ace5e82
Patch #3600941 : Missing field copy in Json::Value::iterator causing infinite loop when using experimental internal map (#define JSON_VALUE_USE_INTERNAL_MAP) (contributed by Ming-Lin Kao).
2013-04-12 13:26:23 +00:00
Baptiste Lepilleur
3f124172ce
Patch #3539678 : Copy constructor does not initialize allocated_ for stringValue (contributed by rmongia).
2013-04-12 13:11:14 +00:00
Baptiste Lepilleur
f8715856f3
Fix gcc -Wall warnings (patch from Matt McCormick)
2013-02-18 15:53:47 +00:00
Baptiste Lepilleur
42321f24a6
Fixed warning(error?) on #if testing value of _MSC_VER without checking that it was defined.
2012-12-20 10:08:50 +00:00
Aaron Jacobs
ae3c7a7aab
Made it possible to drop null placeholders from array output.
...
This can be used when it's clear that the consumer is able to deal with
this, as web browsers are. Thanks to Yatin Chawathe for the patch.
2012-03-12 04:53:57 +00:00
Aaron Jacobs
2b853c4067
Got rid of several unnecessary includes of <iostream>.
...
Including <iostream> causes the file to be polluted with a static
initializer for the __ioinit symbol. This can harm binary startup time.
For more info, see here:
http://neugierig.org/software/chromium/notes/2011/08/static-initializers.html
2011-12-22 03:18:24 +00:00
Christopher Dunn
3b3540d9ef
bug#2407932: strpbrk() could fail for NULL pointer.
2011-06-22 21:04:41 +00:00
Christopher Dunn
9d317c3794
bug#3306345: minor typo in Path::resolve() -- missing bang.
2011-06-22 08:30:21 +00:00
Christopher Dunn
c9f91dd929
More missing constructor initializers found by Coverity.
2011-06-21 23:02:06 +00:00
Christopher Dunn
2ba3bc3252
Another simple addition for constructor initialization, PathArgument.
2011-06-21 22:08:49 +00:00
Christopher Dunn
ac5df77bbc
Simple changes to Reader initialization, from Chromium folks. (I do not think this was submitted as a bug.)
2011-06-21 21:56:54 +00:00
Baptiste Lepilleur
d496e044b1
Fixed unit tests execution on MSVC 6 by removing usage of std::numeric_limits. It was returning 0 value in some max cases. Fixed Value::asFloat() to use integerToDouble().
2011-05-27 08:12:41 +00:00
Baptiste Lepilleur
f587e6a420
Fixed compilation issues with MSVC 6: replace usage of ostringstream with valueToString to support 64 bits integer and high precision floating point conversion to string. Replace usage of ULL and LL literal with UInt64(expr) and Int64(expr). Introduced helper function uint64ToDouble() to work-around missing conversion. Unit tests do not pass yet.
2011-05-26 22:55:24 +00:00
Baptiste Lepilleur
f0b24e705f
Fixed MSVS 2003, 2005 and 2008 tests execution by normalizing floating-point string representation using helper normalizeFloatingPointStr().
2011-05-26 20:14:32 +00:00
Baptiste Lepilleur
e807a7640e
Fixed unit test failure on IBM AIX xlC by hard-coding the maxUInt64AsDouble as double constant instead of relying on double(Value::maxUInt64) which produces an incorrect value.
2011-05-26 17:14:26 +00:00
Baptiste Lepilleur
d3cd9a7fc5
- Fixed unit test compilation on MSVS 2003, 2005 and 2008.
...
- Worked-around unit test failure with MSVS* by "forcing" all floating-point numbers to be loaded from memory instead of FPU registers.
2011-05-26 07:32:36 +00:00
Aaron Jacobs
a2fb7fb918
Fixed some test bugs that show up when 64-bit mode is disabled.
2011-05-26 06:58:52 +00:00
Aaron Jacobs
c649badb95
Another round of attempting to fix VC++ errors...
2011-05-26 03:44:02 +00:00
Aaron Jacobs
a9eb1eccc0
Fixed more default cases.
2011-05-26 03:32:11 +00:00
Aaron Jacobs
6ffff91c54
Got rid of some unreachable code.
2011-05-26 03:27:44 +00:00
Aaron Jacobs
acdefb0869
Fixed a double -> float compilation warning/error.
2011-05-26 03:04:01 +00:00
Aaron Jacobs
c025697ea5
Reworked the type conversion system again, so that:A
...
* isFoo methods determine exact representability.
* asFoo methods cause casting when safe.
* isConvertibleTo indicates whether casting is safe.
See NEWS.txt for details.
2011-05-26 02:46:28 +00:00
Aaron Jacobs
b0ec41c3e3
Made the unit test's output more readable, adding to jsontest's
...
capabilities (and simplifying its implementation) in the process.
2011-05-26 00:30:39 +00:00
Aaron Jacobs
2a2b5cf3ad
Made jsontest work with 64-bit integers, and fixed an error.
2011-05-26 00:12:48 +00:00
Aaron Jacobs
b6620e2801
Removed some out of date TODOs.
2011-05-25 23:26:58 +00:00
Aaron Jacobs
ccde848fd1
Fixed test failures with 64-bit support disabled.
2011-05-25 05:53:59 +00:00
Aaron Jacobs
e082248001
Fixed a 'comparison between signed and unsigned' error.
2011-05-25 05:50:13 +00:00
Aaron Jacobs
e91a68cb9e
Fixed a compilation warning/error.
2011-05-25 04:34:57 +00:00
Aaron Jacobs
1b138e8544
Gave a more consistent behavior to the Value::isFoo methods. See
...
NEWS.txt for more details.
2011-05-25 04:19:17 +00:00
Aaron Jacobs
4f081b50e6
Fixed bugs in asInt64 and asUInt64.
2011-05-25 03:16:49 +00:00
Aaron Jacobs
3c9fdeb859
Added tests for default numeric values.
2011-05-25 02:54:11 +00:00
Aaron Jacobs
4b79fd1a00
Fixed a test bug.
2011-05-25 01:51:30 +00:00
Aaron Jacobs
e12d84ebaa
Made tests more comprehensive.
2011-05-25 01:46:50 +00:00
Aaron Jacobs
078e0d7c37
Gave tests more general names in preparation for making them much more
...
comprehensive.
2011-05-25 01:24:23 +00:00
Aaron Jacobs
fee49b1a37
Fixed some whitespace.
2011-05-25 01:23:47 +00:00
Aaron Jacobs
22eede44c1
Added tests for 64-bit integers.
2011-05-25 01:23:08 +00:00
Aaron Jacobs
d9ec234fc2
Greatly fleshed out numeric type tests.
2011-05-25 01:04:07 +00:00
Aaron Jacobs
3e5b347f75
Added some missing checks.
2011-05-25 01:03:29 +00:00
Aaron Jacobs
96408a30e1
Renamed test cases to make more sense with the upcoming new behavior of
...
isFoo methods.
2011-05-25 00:39:55 +00:00
Aaron Jacobs
1d648f089a
Fixed a whitespace problem.
2011-05-25 00:39:17 +00:00
Aaron Jacobs
f40c880585
Fixed a "comparison between signed and unsigned" warning/error.
2011-05-24 23:08:59 +00:00