Commit Graph

391 Commits

Author SHA1 Message Date
Emiel Bruijntjes
9d85367679 added tabs instead of spaces to be compatible with rest of code 2015-11-27 16:53:57 +01:00
Emiel Bruijntjes
827f0fd8ef update indentation 2015-11-27 16:52:17 +01:00
Emiel Bruijntjes
23ee243113 reference increment and decrement is now atomic (when using a GCC compatible compiler), which allows passing json objects between threads 2015-11-27 16:49:32 +01:00
Eric Haszlakiewicz
c97bbd3797 Merge pull request #199 from Nzbuu/fix_vs_build
Fix build in Visual Studio
2015-11-14 23:31:15 -05:00
Eric Haszlakiewicz
b82a51a5cd Merge pull request #200 from Nzbuu/ci_build
Add build scripts for CI platforms
2015-11-14 23:30:38 -05:00
James Myatt
239c146a4b Appveyor: Visual Studio v140 no longer fails 2015-11-05 13:50:30 +00:00
James Myatt
fd43c2b99a Appveyor: Create artefact with library and include files only 2015-11-05 13:45:01 +00:00
Eric Haszlakiewicz
80c1f69b9e Use AX_APPEND_COMPILE_FLAGS() to check the various compile flags, such as -Wall, to ensure the compile supports. 2015-10-23 02:16:40 +00:00
Eric Haszlakiewicz
10d50aadf2 Remove the AC_FUNC_MALLOC check, since we don't depend on the malloc(0) behavior it checks for, and we don't provide a rpl_malloc() implementation anyway. 2015-10-22 02:57:13 +00:00
James Myatt
82030cd0af Travis: add osx and clang builds 2015-10-09 23:58:02 +01:00
James Myatt
88dedb8824 Travis: skip install step 2015-10-09 23:58:01 +01:00
James Myatt
f786feac0a Add Travis build script 2015-10-09 23:58:00 +01:00
James Myatt
17e11e2c92 Appveyor: Allow failing builds against newest toolset 2015-10-09 23:54:14 +01:00
James Myatt
f6f8436e97 Add initial version of Appveyor build script 2015-10-09 23:54:13 +01:00
James Myatt
3f012eb0f8 Fix build in Visual Studio 2015-10-09 23:24:55 +01:00
Eric Haszlakiewicz
12916e229c Merge pull request #196 from rgerhards/improve-performance
Performance improvements
2015-09-28 22:25:29 -04:00
Rainer Gerhards
c4f8cc34df more efficient handling for smalls strings inside json_object
smalls strings inside json_objects had a high overhead because dynamic
memory allocation was needed for each of them. This also meant that the
pointer needed to be updated. This is now changed so that small strings
can directly be stored inside the json_object. Note that on the regular
64 bit machines a pointer takes 8 bytes. So even without increasing
memory, we could store string up to 7 bytes directly inside the object.
The max size is configurable. I have selected up to 31 bytes (which
means a buffer of 32 including the NUL byte). This brings a 24-bytes
memory overhead, but I consider that still useful because the memory
allocator usually also has quite some overhead (16 bytes) for
dyn alloced memory blocks. In any case, the max buffer size can be
tweaked via #define.
2015-09-23 15:56:48 +02:00
Rainer Gerhards
1ae4b50bde remove unneeded data items from hashtable code
These items were used for statistics tracking, but no code at all
exists to consume them. By removing them we save

a) space
   because they counters required space, and did so in each and every
   json object

b) performance
   because calloc() needs to write less data and the counters are
   no longer maintained; cache performance can be better, load
   on OS main memory is lighter

We could conditionally enable/disable these counters, but I have not
done this they were really nowhere used and it looked more like a
left-over from the import of hashtable code.
2015-09-23 12:40:57 +02:00
Rainer Gerhards
8f8d03df46 add perllike hash function for strings
This also adds a new API json_global_set_string_hash() which permits
to select the hash function. The default one is the only one that was
previously present. So there are no changes to existing apps, and the
new hash function needs to be explicitely be opted in. Especially for
smaller strings, the perllike functions seems to be around twice as
fast as the other one, with similarly good results in value distribution.
2015-09-23 12:23:09 +02:00
Rainer Gerhards
2d549662be add json_object_object_add_ex() API
This provides more control over some detail aspects, many
of which are performance related.
2015-09-23 09:43:00 +02:00
Rainer Gerhards
d8e44dc685 reduce duplicate hash computation in json_object_object_add()
This can be a very considerable performance saver.
2015-09-22 19:07:30 +02:00
Eric Haszlakiewicz
1757a31750 Fix doc for json_object_new_boolean() to indicate the correct value for TRUE (1). 2015-08-23 00:08:14 -04:00
Eric Haszlakiewicz
d4f8f92eb0 Squash deprecated function warning by replacing json_object_object_get calls with json_object_object_get_ex in test_cast. 2015-08-23 00:06:36 -04:00
Eric Haszlakiewicz
93b1fe63e5 Add back in the __attribute__((__unused__)) that was lost in the previous commit.
It's needed to squash a "variable 'val' set but not used" warning.
2015-08-23 00:00:12 -04:00
Eric Haszlakiewicz
a8bbefbbb4 Merge pull request #183 from cryogen/master
Apply compile warning fix to master branch
2015-08-22 15:24:26 -04:00
Eric Haszlakiewicz
55530bfc0f Merge pull request #186 from Virtual-Instruments/master
Syntax error
2015-08-05 23:19:19 -04:00
Jacob Alexander
e8a302017f Syntax error
- ./configure would fail due to bad code generation
2015-06-02 14:34:51 -07:00
Eric Haszlakiewicz
b594c34f57 Merge pull request #174 from haata/master
Adding JSON_C_TO_STRING_PRETTY_TAB flag
2015-05-31 12:10:13 -07:00
Jacob Alexander
92d4cf15f0 Adding JSON_C_TO_STRING_PRETTY_TAB flag
- Tabs are easier to read for tired eyes and editor adjustable
2015-05-27 17:37:39 -07:00
Eric Haszlakiewicz
cd8bd7f617 Tell the compiler we're intentionally ignoring the return value from __sync_val_compare_and_swap(). 2015-05-26 19:02:19 -07:00
Stuart Walsh
75d7409c4e Fix uninitialised variable compile warning, and also fix unused-when-used warning 2015-05-10 09:21:28 +01:00
Eric Haszlakiewicz
cbedf2f7ca Merge pull request #149 from cicku/patch-2
SONAME bump
2015-05-09 21:35:22 -04:00
Eric Haszlakiewicz
e4fce5d6ae Merge pull request #171 from Nzbuu/vs2010_build
Update configuration for VS2010 and win64
2015-05-08 21:31:37 -04:00
Eric Haszlakiewicz
e1eb298de1 Merge pull request #182 from tpetazzoni/libm-fix
Link against libm when needed
2015-05-08 21:19:48 -04:00
Eric Haszlakiewicz
82a1316f76 Merge pull request #180 from yegorich/silent
Enable silent build by default
2015-05-08 21:19:05 -04:00
Thomas Petazzoni
93582ad85e Link against libm when needed
In certain C libraries (e.g uClibc), isnan() and related functions are
implemented in libm, so json-c needs to link against it. This commit
therefore adds an AC_TRY_LINK() test to check whether a program
calling isnan() can be properly linked with no special flags. If not,
we assume linking against libm is needed.

The json-c.pc.in file is also adjusted so that in the case of static
linking against json-c, -lm is also used.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-05-01 13:01:17 +02:00
Yegor Yefremov
36b0169ed6 Enable silent build by default 2015-04-25 22:11:44 +02:00
James Myatt
736f4b3581 Build random_seed.c as well 2015-03-04 10:45:40 +00:00
James Myatt
9d3d8d6fc0 Add x64 build configurations 2015-03-04 10:45:40 +00:00
James Myatt
e1a3f33a26 Set CompileAsCpp flag (Required for vs2010/winsdk71)
Revert some project settings to defaults
2015-03-04 10:45:39 +00:00
James Myatt
d5baa0381f Update VS project to include current source files 2015-03-04 10:45:38 +00:00
James Myatt
18b3c49296 Use more appropriate casts 2015-03-04 10:45:37 +00:00
James Myatt
bf32650c83 Add missing include file to random_seed 2015-03-04 10:45:37 +00:00
James Myatt
720d566d03 Define macros from inttypes.h when not available 2015-03-04 10:45:36 +00:00
James Myatt
9be71700eb json_tokener requires INF and NAN 2015-03-04 10:45:35 +00:00
James Myatt
72310c87a5 Define INFINITY and NAN when missing 2015-03-04 10:45:34 +00:00
James Myatt
0137103f4b Include config.h in linkhash so that HAVE_ENDIAN_H is defined (if available) 2015-03-04 10:45:33 +00:00
James Myatt
a74f6b2867 Updated config for vs2010/winsdk71 as well as vs2013
Define JSON_C_HAVE_INTTYPES_H in json_config.h.win32 only
2015-03-04 10:45:33 +00:00
Eric Haszlakiewicz
68d856f618 Merge pull request #168 from bugness-chl/master
Tightening the number parsing algorithm
2015-03-03 22:41:31 -05:00
Eric Haszlakiewicz
7e3a6c6b9d Merge pull request #163 from sixlettervariables/fix-win32-build-problems
Fix Win32 build problems
2015-03-03 22:35:36 -05:00