Marian Klymov
fc20134c92
Fix different names for parameters in declaration and definition
2018-06-02 20:15:26 +03:00
Billy Donahue
b5e1fe89aa
Apply the formatting specified in .clang-format file.
...
$ clang-format --version
clang-format version 7.0.0 (tags/google/stable/2018-01-11)
$ clang-format -i --style=file $(find . -name '*.cpp' -o -name '*.h')
2018-05-20 18:38:42 -04:00
binyangl
0a62267fe4
Disable warning "C4702" when compiling json cpp using vs2013 and above
2018-05-08 20:55:30 +08:00
Mike R
a07fc53287
Add setting precision for json writers and also add decimal places precision type. ( #752 )
...
* Added setting precision for writers.
* Added special case for precise precision and global precision.
* Added good setting of type of precision and also added this type to BuiltStreamWriter and for its settings.
* Added some tests.
2018-03-13 15:35:31 -05:00
Christopher Dunn
3e2b8ea9cc
Minor changes for static analysis ( #749 )
...
re: #747
2018-03-03 12:51:17 -06:00
Maxim Ky
1ec85c76a4
Value::removeMember arg "removed" is optional now (could be nullptr)
2018-01-29 16:59:24 +03:00
Maxim Ky
c27936e0aa
Value::removeMember moves the existing value to "removed" now
2018-01-29 16:58:45 +03:00
Andrey Okoshkin
9b569c8ce3
Make Value copy constructor simplier
...
Helper private methods Value::dupPayload() and Value::dupMeta() are added.
Value copy constructor doesn't attempt to delete its data first.
* Value::dupPayload() duplicates a payload.
* Value::dupMeta() duplicates comments and an offset position with a limit.
2018-01-12 15:59:20 +03:00
Andrey Okoshkin
c69148c946
Fix Value::copyPayload() and Value::copy() ( #704 )
...
Value copy constructor shares the same code with Value::copy() and Value::copyPayload().
New Value::releasePayload() is used to free payload memory.
Fixes : #704
2018-01-12 14:33:47 +03:00
Wolfram Rösler
9079422ac1
Allow Json::Value to be used in a boolean context ( #695 )
...
Must bump soversion too.
2017-12-05 11:18:55 -06:00
Wolfram Rösler
a06b390187
Un-deprecate removeMember overloads, return void ( #693 )
...
* Un-deprecate removeMember overloads, return void
Sometimes we just want to remove something we don't need anymore. Having
to supply a return buffer for the removeMember function to return something
we don't care about is a nuisance. There are removeMember overloads that
don't need a return buffer but they are deprecated. This commit un-deprecates
these overloads and modifies them to return nothing (void) instead of the
object that was removed.
Further discussion: https://github.com/open-source-parsers/jsoncpp/pull/689
WARNING: Changes the return type of the formerly deprecated removeMember
overloads from Value to void. May break existing client code.
* Minor stylistic fixes
Don't explicitly return a void value from a void function. Also, convert
size_t to unsigned in the CZString ctor to avoid a compiler warning.
2017-10-18 00:19:27 -05:00
Christopher Dunn
a3a4059367
Use non-deprecated removeMember()
...
closes #683
2017-09-30 00:46:15 -05:00
Christopher Dunn
17c14e73a9
Use move ctor in append()
2017-09-15 18:55:50 -05:00
damiram
ef16a35328
Fixing warnings. Added JSONCPP_DEPRECATED definition for clang. Also updating .gitignore to ignore .DS_Store files (Mac OS Finder generated)
2017-08-02 22:44:42 -07:00
Александр Малинин
6a15ca6442
Fix non-rvalue Json::Value assignment operator (should copy, not move)
2017-07-31 15:29:02 +03:00
Devin Jeanpierre
59e4d35339
Restore BL's authorship attribution, and add "The Jsoncpp Authors" where it was missing.
...
Requested/noticed in https://github.com/open-source-parsers/jsoncpp/pull/610 , and a
followup to https://github.com/open-source-parsers/jsoncpp/pull/607 .
2017-07-21 03:44:36 -07:00
Dhruv Paranjape
0ba8bd73f5
add move assignment operator for CZString and change copy assignment to const reference.
2017-07-08 17:47:13 +05:30
Dhruv Paranjape
23c44d9f9e
overload append function for R value references.
2017-07-08 17:30:47 +05:30
Dhruv Paranjape
8996c377aa
add move assignment operator for Json::Value class.
2017-07-08 17:27:07 +05:30
pavel.pimenov
6ca374371e
Fix V815:Decreased performance
2017-04-07 15:41:07 +03:00
Alexander V. Brezgin
c442fd96e6
Optimize Value::isIntegral() method
...
Worst case called modf() twice
2017-03-29 06:37:37 +05:00
Gaurav
f251f15e6a
Fix crash issue due to NULL value.
...
Null value in Value constructor will crash strlen(). Avoid crash with JSON_ASSERT_MESSAGE
2017-01-17 17:28:43 +05:30
Christopher Dunn
11836ae9aa
std::min<unsigned>, for VS2015
...
fixes #565
2016-12-21 11:09:57 -06:00
Alexander V. Brezgin
ee7935986e
Optimize value check
2016-11-20 03:55:08 +03:00
Alexander V. Brezgin
b4abc8241f
Optimize value range check
2016-11-20 03:50:32 +03:00
Alexander V. Brezgin
12e9ef32f9
Remove repeated condition
...
isDouble() contains isIntegral()
2016-11-20 03:28:15 +03:00
Omkar Wagh
91c1d23461
change throw() to noexcept to conform to c++11
2016-11-07 17:39:38 -05:00
Paweł Bylica
1572539bec
Rename variable empty to emptyString
...
Rename variable empty to emptyString in Value constructor to avoid shadowing of Value::empty().
GCC 4.8 produces the warning about this:
lib_json/json_value.cpp: In constructor ‘Json::Value::Value(Json::ValueType)’:
lib_json/json_value.cpp:346:27: warning: declaration of ‘empty’ shadows a member of 'this' [-Wshadow]
2016-10-14 11:59:28 +02:00
chason
2f97c0147b
fix a bug about Json::Path
2016-09-07 19:56:19 +08:00
Christopher Dunn
f78f685bab
Remove needless if.
...
resolves #516
2016-08-21 16:31:14 -05:00
Christopher Dunn
7e0571b444
Avoid null for stringValue
...
fixes #517
2016-08-21 16:25:29 -05:00
Christopher Dunn
b299d3581f
Allow dtor for nullSingleton
...
re #488 and #490
2016-07-20 11:31:41 -07:00
Christopher Dunn
0f288aecdd
Use a Myers Singleton for null
...
Avoid some static initialization problems.
From @marklakata
See #488
2016-06-26 19:36:40 -05:00
Cristóvão B da Cruz e Silva
c8a7b445ea
Small fix for strict compilers (using the flag -Werror for instance)
2016-03-26 18:41:46 +00:00
dawesc
ae564653c4
-DJSONCPP_USE_SECURE_MEMORY=1 for cmake
...
Add allocator.h to amalgamated header
Test JSONCPP_USE_SECURE_MEMORY in Travis
2016-03-19 19:21:15 -05:00
Gaurav
0b597b4b48
Added NORETURN for throw functions.
...
Fix in definition also.
2016-03-16 11:17:21 +05:30
Gaurav
cf86c473a5
Supporting GCC 6.0
...
This patch is also needed to build success for GCC 6.0.
Refer issue - https://github.com/open-source-parsers/jsoncpp/issues/411
2016-03-15 18:31:44 +05:30
Christopher Dawes
75570d7068
Fixing up for #define instead of typedef in secure allocators
2016-03-14 19:15:17 -05:00
Christopher Dunn
5da29e2707
Another shot at #411
2016-03-14 18:35:53 -05:00
Christopher Dunn
de5b792168
JSONCPP_STRING
2016-03-06 11:56:38 -06:00
Gaurav
4878913143
Avoid passing Null to memcmp
...
As per discussion in - https://github.com/open-source-parsers/jsoncpp/issues/404
Null should not be pass to memcmp, it may show undesired behaviour, so avoid doing that using assertion.
Also, changed one direct "assert" to JSON_ASSERT - it will be decided if exceptions are used or not.
2016-03-01 14:13:28 +05:30
Tomasz Maciejewski
ccd70540e3
remove C-style casting
2016-02-28 12:56:04 +01:00
Christopher Dunn
02bc3d77de
This *might* fix the last gcc-6 error.
...
See https://github.com/open-source-parsers/jsoncpp/issues/411#issuecomment-180974558
I was unable to produce a warning in Clang, so I am not certain. But based on a [SO answer](http://stackoverflow.com/questions/25480059/gcc-conversion-warning-when-assigning-to-a-bitfield ), I think I've fixed the following:
```
/tmp/jsoncpp/src/lib_json/json_value.cpp: In copy constructor 'Json::Value::CZString::CZString(const Json::Value::CZString&)':
/tmp/jsoncpp/src/lib_json/json_value.cpp:235:18: error: conversion to 'unsigned char:2' from 'unsigned int' may alter its value [-Werror=conversion]
storage_.policy_ = (other.cstr_
~~~~~~~~~~~~
? (static_cast<DuplicationPolicy>(other.storage_.policy_) == noDuplication
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
? noDuplication : duplicate)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: static_cast<DuplicationPolicy>(other.storage_.policy_));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
2016-02-07 11:28:50 -06:00
Christopher Dunn
95f120f68e
For gcc>=6 JSON_USE_INT64_DOUBLE_CONVERSION
2016-02-07 11:09:41 -06:00
Christopher Dunn
d4513fcf45
Fix conversion warnings/errors
...
See #411 .
http://paste.debian.net/378673/
2016-02-06 09:25:20 -06:00
Christopher Dunn
527965cbde
Minor
...
adjustments, based on comments in PR.
2015-10-19 23:49:07 -05:00
Motti
2b00891a86
move ctors
...
* Add move constructor to Value::CZString
* Add unit test for Value move constructor
* Allow includer to specify in advance the value for
JSON_HAS_RVALUE_REFERENCES
2015-10-19 23:42:52 -05:00
Christopher Dunn
949babd7b0
Exceptions declared in header
...
resolves #272
2015-07-23 00:26:13 -05:00
Christopher Dunn
7f240623d3
fixed a bug found by -Wshadow
2015-07-12 14:28:55 -05:00
Christopher Dunn
784433ac72
fix some warnings
2015-07-12 14:28:37 -05:00
Stuart Eichert
702a539762
Fix #296 : Explicitly cast size_t results to unsigned when needed
...
This is rebased from #297 , where AppVeyor had been failing, and which
was not properly based on the master branch.
2015-07-11 11:00:18 -05:00
Dani-Hub
f9feb66be2
Change exception data member
...
from "reference to string" to "string" (Resolves the most serious part of issue #216 )
2015-03-09 18:42:16 -05:00
Christopher Dunn
2250b3c29d
use Json::RuntimeError
2015-03-08 12:44:55 -05:00
Christopher Dunn
5383794cc9
Runtime/LogicError and throwers
2015-03-08 12:31:57 -05:00
Christopher Dunn
75279ccec2
base Json::Exception
2015-03-08 12:20:06 -05:00
Christopher Dunn
717b08695e
clarify errors
...
* use macros for logic errors, not input errors
* throw on parsing failure in `operator>>()`, not assert
* throw on malloc, not assert
2015-03-08 12:06:22 -05:00
Christopher Dunn
ce19001238
require length
...
Ugh! I meant to do this long ago. It would have caught my blunder.
2015-03-07 15:12:52 -06:00
Christopher Dunn
a63d82d78a
drop unused CString ctor case
...
`Value::CZString::CZString(char const* str, unsigned length, DuplicationPolicy allocate)` with `allocate == duplicate` does not happen.
2015-03-07 14:43:37 -06:00
datadiode
ee83f8891c
Trivial fixes in CZString constructors.
2015-03-07 14:43:07 -06:00
Christopher Dunn
0fd2875a44
fix get() for embedded zeroes in key
...
This method had been overlooked.
2015-03-05 16:47:29 -06:00
Christopher Dunn
d31151d150
test get(key, default)
2015-03-05 16:44:50 -06:00
Christopher Dunn
42d7e59fe0
fix compiler-error and warnings for VS2013
...
fix issue #200
2015-03-05 09:15:10 -06:00
Christopher Dunn
24f544996f
no struct init
...
The C struct initializer is not standard C++.
GCC and Clang handle this (at least in some versions) but some
compilers might not.
2015-03-03 10:15:09 -06:00
Christopher Dunn
493f6dcebe
keep StaticString (!allocated_) for copy ctor
2015-03-03 09:36:22 -06:00
Christopher Dunn
effd732aa1
null -> nullRef
2015-03-03 01:25:33 -06:00
Christopher Dunn
2d653bd15d
fix security hole for string-key-lengths > 2^30
2015-03-03 00:14:54 -06:00
Christopher Dunn
c28610fb5d
fix StaticString test
...
* support zeroes in string_
* support zeroes in writer; provide getString(char**, unsigned*)
* valueToQuotedStringN(), isCC0(), etc
* allow zeroes for cpptl ConstString
* allocated => non-static
2015-03-03 00:14:54 -06:00
Christopher Dunn
a53283568f
cp duplicateStringValue()
2015-03-03 00:14:53 -06:00
Christopher Dunn
25342bac13
support UTF-8 for const methods
2015-03-03 00:14:53 -06:00
Christopher Dunn
e6b46e4503
stop computing strlen() in CZString
2015-03-02 23:50:59 -06:00
Christopher Dunn
8a77037320
actually store length in CZString
2015-03-02 23:50:59 -06:00
Christopher Dunn
57ad051f67
allow length in CZString
2015-03-02 23:50:59 -06:00
Christopher Dunn
b383fdc61e
use memcmp in CZString
...
This is a loss of efficiency, but it prepares for an increase when we
have stored lengths.
2015-03-02 23:50:59 -06:00
Mark Lakata
8051cf6ba7
changed length argument of duplicateStringValue from unsigned int to size_t, to avoid warnings in Visual Studio.
2015-03-02 11:57:17 -08:00
Christopher Dunn
4788764844
drop JSON_VALUE_USE_INTERNAL_MAP, JSON_USE_SIMPLE_INTERNAL_ALLOCATOR
...
And remove some old headers.
These were not actually compiling anymore, and there were outstanding,
known bugs, e.g. https://sourceforge.net/p/jsoncpp/bugs/27
2015-02-25 10:04:13 -06:00
Christopher Dunn
07f0e9308d
nullRef, since we had to add that kludge to 0.8.0
2015-02-10 21:28:13 -06:00
Christopher Dunn
1e3149ab75
rm trailing newlines for *all* comments
...
This will make it easier to fix newlines consistently.
2015-01-25 14:32:13 -06:00
datadiode
2f046b584d
Fix a border case which causes Value::CommentInfo::setComment() to crash
...
re: pull #140
2015-01-25 11:19:51 -06:00
Christopher Dunn
2bc6137ada
fix gcc warnings
2015-01-24 13:42:37 -06:00
Christopher Dunn
76746b09fc
deprecate old removeMember()
2015-01-22 19:25:44 -06:00
Connor Manning
00b8ce81db
Build without warnings with -pedantic enabled.
2015-01-22 10:48:45 -06:00
Christopher Dunn
59167d8627
more changes per cr
2015-01-21 16:05:08 -06:00
Christopher Dunn
05c1b8344d
drop this-> (team preference)
2015-01-21 15:43:48 -06:00
Christopher Dunn
e87e41cdb0
from Itzik S; see issue #28
...
with minor corrections
2015-01-20 17:03:58 -06:00
Christopher Dunn
9de2c2d84d
partial
2015-01-20 17:02:48 -06:00
Christopher Dunn
66eb72f121
use SwapPayload() to retain comments
...
All tests pass, but we might be missing coverage.
issue #47
2015-01-20 12:07:01 -06:00
datadiode
c07ef37904
https://github.com/open-source-parsers/jsoncpp/issues/47
2015-01-18 10:05:25 +01:00
xiaoyur347
83683da13f
fix gcc warning when CXXFLAGS contains '-Wextra'
...
json_value.cpp:179:26: warning: enumeral and non-enumeral type in conditional expression [enabled by default]
https://github.com/open-source-parsers/jsoncpp/pull/84
2014-11-19 23:59:34 -06:00
Billy Donahue
8eb5d89db6
Remove initInt and initUInt until they are needed.
2014-11-10 01:35:42 -05:00
Christopher Dunn
4002f8a4be
Revert "Revert "Removed vim mode lines.""
...
This reverts commit af77b5b594
.
See discussion at
32009b17e4 (commitcomment-7827708)
2014-09-18 16:46:40 -07:00
Christopher Dunn
af77b5b594
Revert "Removed vim mode lines."
...
This reverts commit 32009b17e4
.
2014-09-16 12:42:32 -07:00
Aaron Jacobs
11086dd6a7
Enabled PointerBindsToType in clang-format options.
2014-09-15 10:15:29 +10:00
Aaron Jacobs
30b07c0275
Ran clang-format over all .h and .cpp files.
...
clang-format -i $(find . -name '*.h' -or -name '*.cpp')
2014-09-15 10:14:48 +10:00
Aaron Jacobs
32009b17e4
Removed vim mode lines.
...
Users can set their own preferences in their personal vimrc.
2014-09-15 08:23:41 +10:00
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