@@ -19,10 +19,16 @@ extern "C" {
19
19
#define JSONB_API extern
20
20
#endif
21
21
22
- /* if necessary should be increased to avoid segfault */
23
22
#ifndef JSONB_MAX_DEPTH
24
- #define JSONB_MAX_DEPTH 512
25
- #endif
23
+ /**
24
+ * Maximum JSON nesting depth, if default value is unwanted then it should be
25
+ * defined before json-build.h is included:
26
+ *
27
+ * #define JSONB_MAX_DEPTH 256
28
+ * #include "json-build.h"
29
+ * */
30
+ #define JSONB_MAX_DEPTH 128
31
+ #endif /* JSONB_MAX_DEPTH */
26
32
27
33
/** @brief json-builder return codes */
28
34
typedef enum jsonbcode {
@@ -246,15 +252,15 @@ _jsonb_eval_state(enum jsonbstate state)
246
252
(buf)[(b)->pos + (_pos)] = '\0'; \
247
253
} while (0)
248
254
249
- void
255
+ JSONB_API void
250
256
jsonb_init (jsonb * b )
251
257
{
252
258
static jsonb empty_builder ;
253
259
* b = empty_builder ;
254
260
b -> top = b -> stack ;
255
261
}
256
262
257
- jsonbcode
263
+ JSONB_API jsonbcode
258
264
jsonb_object (jsonb * b , char buf [], size_t bufsize )
259
265
{
260
266
enum jsonbstate new_state ;
@@ -287,7 +293,7 @@ jsonb_object(jsonb *b, char buf[], size_t bufsize)
287
293
return JSONB_OK ;
288
294
}
289
295
290
- jsonbcode
296
+ JSONB_API jsonbcode
291
297
jsonb_object_pop (jsonb * b , char buf [], size_t bufsize )
292
298
{
293
299
enum jsonbcode code ;
@@ -372,7 +378,7 @@ _jsonb_escape(
372
378
goto second_iter ;
373
379
}
374
380
375
- jsonbcode
381
+ JSONB_API jsonbcode
376
382
jsonb_key (jsonb * b , char buf [], size_t bufsize , const char key [], size_t len )
377
383
{
378
384
size_t pos = 0 ;
@@ -398,7 +404,7 @@ jsonb_key(jsonb *b, char buf[], size_t bufsize, const char key[], size_t len)
398
404
return JSONB_OK ;
399
405
}
400
406
401
- jsonbcode
407
+ JSONB_API jsonbcode
402
408
jsonb_array (jsonb * b , char buf [], size_t bufsize )
403
409
{
404
410
enum jsonbstate new_state ;
@@ -431,7 +437,7 @@ jsonb_array(jsonb *b, char buf[], size_t bufsize)
431
437
return JSONB_OK ;
432
438
}
433
439
434
- jsonbcode
440
+ JSONB_API jsonbcode
435
441
jsonb_array_pop (jsonb * b , char buf [], size_t bufsize )
436
442
{
437
443
enum jsonbcode code ;
@@ -454,7 +460,7 @@ jsonb_array_pop(jsonb *b, char buf[], size_t bufsize)
454
460
return code ;
455
461
}
456
462
457
- jsonbcode
463
+ JSONB_API jsonbcode
458
464
jsonb_token (
459
465
jsonb * b , char buf [], size_t bufsize , const char token [], size_t len )
460
466
{
@@ -490,20 +496,20 @@ jsonb_token(
490
496
return code ;
491
497
}
492
498
493
- jsonbcode
499
+ JSONB_API jsonbcode
494
500
jsonb_bool (jsonb * b , char buf [], size_t bufsize , int boolean )
495
501
{
496
502
if (boolean ) return jsonb_token (b , buf , bufsize , "true" , 4 );
497
503
return jsonb_token (b , buf , bufsize , "false" , 5 );
498
504
}
499
505
500
- jsonbcode
506
+ JSONB_API jsonbcode
501
507
jsonb_null (jsonb * b , char buf [], size_t bufsize )
502
508
{
503
509
return jsonb_token (b , buf , bufsize , "null" , 4 );
504
510
}
505
511
506
- jsonbcode
512
+ JSONB_API jsonbcode
507
513
jsonb_string (
508
514
jsonb * b , char buf [], size_t bufsize , const char str [], size_t len )
509
515
{
@@ -542,7 +548,7 @@ jsonb_string(
542
548
return code ;
543
549
}
544
550
545
- jsonbcode
551
+ JSONB_API jsonbcode
546
552
jsonb_number (jsonb * b , char buf [], size_t bufsize , double number )
547
553
{
548
554
char token [32 ];
0 commit comments