Billy Donahue
45cd9490cd
Switch to copy-and-swap idiom for operator=.
...
This allows the compiler to elide a copy when rhs is a temporary.
2014-09-10 10:37:34 -07:00
Christopher Dunn
d94caac1ea
ws
2014-09-03 13:46:37 -07:00
Matthias Loy
fe2cd01e80
free does nothing if parameter equals NULL
2014-09-03 13:37:17 -07:00
Matthias Loy
48d9a92a1b
do intermediate step in order to omit "dereferencing type-punned pointer" error
2014-08-13 13:20:29 +02:00
Christopher Dunn
8582876c5c
vim modelines
2014-07-10 20:24:23 -07:00
Christopher Dunn
28836b8acc
fix bug for static init
...
Ugh! Static initialization of instance variables is a very bad idea.
This fix is taken from the Chromium code-base. It includes their
double-fix for ARM.
* https://codereview.chromium.org/24984004
* https://src.chromium.org/viewvc/chrome?revision=226099&view=revision
* https://code.google.com/p/webrtc/issues/detail?id=1777
2014-07-05 17:36:20 -07:00
Aaron Jacobs
3a0c4fcc82
Ran clang-format again.
2014-07-01 09:20:48 +10:00
Aaron Jacobs
9fa4e849a1
Ran clang-format over all .h and .cpp files.
...
clang-format -i $(find . -name '*.h' -or -name '*.cpp')
2014-07-01 08:48:54 +10:00
Christopher Dunn
6764059395
fix stdexcept
...
https://sourceforge.net/p/jsoncpp/bugs/68/
2014-05-13 09:49:25 +00:00
Aaron Jacobs
68db655347
Added structured error reporting to Reader.
...
This allows applications for interactively viewing or editing JSON to do
a better job of highlighting errors. Also added offset accessors to
Value, offering the same sort of functionality even for non-errors.
Thanks to Zach Clifford (zacharyc@google.com ) for the patch.
2014-04-23 23:41:12 +00:00
Christopher Dunn
77cd83890d
vim modeline
...
http://vim.wikia.com/wiki/Modeline_magic
2014-04-19 21:41:03 +00:00
Christopher Dunn
ea0797351f
JSON_ASSERT -> JSON_ASSERT_MESSAGE
...
This way, assertions can produce exceptions.
https://sourceforge.net/p/jsoncpp/bugs/67/
2014-04-19 06:37:23 +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
3f124172ce
Patch #3539678 : Copy constructor does not initialize allocated_ for stringValue (contributed by rmongia).
2013-04-12 13:11:14 +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
9d317c3794
bug#3306345: minor typo in Path::resolve() -- missing bang.
2011-06-22 08:30:21 +00:00
Christopher Dunn
2ba3bc3252
Another simple addition for constructor initialization, PathArgument.
2011-06-21 22:08:49 +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
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
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
b6620e2801
Removed some out of date TODOs.
2011-05-25 23:26:58 +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
f40c880585
Fixed a "comparison between signed and unsigned" warning/error.
2011-05-24 23:08:59 +00:00
Aaron Jacobs
f1053e7acb
Fixed a bunch of compilation errors when JSON_HAS_INT64 is set.
2011-05-24 03:18:02 +00:00
Aaron Jacobs
e3d0eca9f4
Centralized assertion macros and made them obey JSON_USE_EXCEPTION.
2011-05-24 01:03:22 +00:00
Aaron Jacobs
a77a803c85
Made two security fixes.
2011-05-24 00:43:59 +00:00
Aaron Jacobs
785ba2675d
Updated a cast to use a more appropriate type.
2011-05-24 00:43:30 +00:00
Aaron Jacobs
3b556ec633
Fixed constructor initializer list order warnings/errors.
2011-05-24 00:42:58 +00:00
Baptiste Lepilleur
eadc478e50
Fixed typo: amalga*ma*te. Replaced macro JSON_IS_AMALGATED with JSON_IS_AMALGAMATION
2011-05-02 21:09:30 +00:00
Baptiste Lepilleur
1837a1c508
Value::compare() is now const and has an actual implementation with unit tests.
2011-05-02 20:11:48 +00:00
Baptiste Lepilleur
e3cc0f004b
Untabified some sources
2011-05-02 18:41:01 +00:00
Baptiste Lepilleur
fb17080142
- Added unit tests for comparison operators (except compare())
...
- Fixed Value::operator <= implementation (had the semantic of operator >=). Found when addigin unit tests for comparison operators.
2011-05-02 16:53:10 +00:00
Baptiste Lepilleur
e0e1fd37cd
- Bug #3200841 : removed "warning C4127: conditional expression is constant" concerning infinite loop by replacing while (true) with for (;;). Added new JSON_FAIL macro. Commented unused parameters.
2011-05-02 16:51:48 +00:00
Baptiste Lepilleur
64e40aafe5
Added support for amalgated source and header generation (a la sqlite). Refer to README.txt section "Generating amalgated source and header" for detail.
...
The amalgated sources are generated by concatenating JsonCpp source in the correct order and defining macro JSON_IS_AMALGATED to prevent inclusion of other headers. Sources and header has been modified to prevent any inclusion when this macro is defined.
The script amalgate.py handle the generation.
2011-05-01 20:13:40 +00:00
Baptiste Lepilleur
b2e8cccbc6
Renamed Reader::getFormatedErrorMessages() to getFormattedErrorMessages. Bug #3023708 (Formatted has 2 't'). The old member function is deprecated but still present for backward compatibility.
2011-05-01 16:27:55 +00:00
Baptiste Lepilleur
842e9ac54b
Major rework of 64 integer support: 64 bits integer are only returned when explicitly request via Json::Value::asInt64(), unlike previous implementation where Json::Value::asInt() returned a 64 bits integer.
...
This eases porting portable code and does not break compatibility with the previous release.
Json::Value::asLargestInt() has also be added to ease writing portable code independent of 64 bits integer support. It is typically used to implement writers.
2010-12-27 17:45:23 +00:00
Baptiste Lepilleur
b96aed0f3e
Added float Json::Value::asFloat() to obtain a floating point value as a float (avoid lost of precision warning caused by used of asDouble() to initialize a float).
2010-12-24 19:30:06 +00:00
Baptiste Lepilleur
fa130ef871
- Array index can be passed as int to operator[], allowing use of literal:
...
Json::Value array;
array.append( 1234 );
int value = array[0].asInt(); // did not compile previously
2010-12-24 12:47:14 +00:00
Baptiste Lepilleur
7469f1d014
JsonCpp is now licensed under MIT license, or public domain if desired and recognized in your jurisdiction.
2010-04-20 21:35:19 +00:00
Baptiste Lepilleur
201fb2cf0d
- Moved definition of Json::Int and Json::UInt to config.h which compiler detection logic to define them to 64 bits integer if JSON_NO_INT64 is not defined.
...
- Added Json::ArrayIndex as an unsigned int to forwards.h
- Modified Json::Value to consistently use Json::ArrayIndex.
- Added int/unsigned int constructor overload to Json::Value to avoid ambiguous constructor call.
- Modified jsontestrunner/main.cpp to use Json::valueToString for Value::asInt() conversion to string.
- Modified Json::Reader to only overflow to double when the number is too large (previous code relied on the fact that an int fitted in a double without precision loss).
- Generalized uintToString() helpers and buffer size to automatically adapt to the precision of Json::UInt.
- Added specific conversion logic for UInt to double conversion on Microsoft Visual Studio 6 which only support __int64 to double conversion (unsigned __int64 conversion is not supported)
- Added test for 64 bits parsing/writing. Notes: those will fail when compiled with JSON_NO_INT64 (more dev required to adapt).
2010-04-19 07:37:41 +00:00
Baptiste Lepilleur
afd9cef928
Removed experimental ValueAllocator, it caused static initialization/destruction order issues (bug #2934500 ). The DefaultValueAllocator has been inlined in code.
2010-03-13 13:10:27 +00:00
Baptiste Lepilleur
3a1b93be1c
- added Int/UInt typedef in Json namespace. Modified Value::Int and Value::UInt to be typedef on those. Modified code to use Json::Int instead of Value::Int.
...
- added Value constructor taking begin/end pointer to initialize the Value with a non-zero terminated string.
2010-02-21 14:08:17 +00:00