MCPcopy Create free account
hub / github.com/defold/defold / json_initialize_config

Function json_initialize_config

engine/script/src/luacjson/lua_cjson.c:474–570  ·  view source on GitHub ↗

DEFOLD

Source from the content-addressed store, hash-verified

472
473// DEFOLD
474static void json_initialize_config(lua_State *l, int options_index, json_config_t* cfg,
475 int encode_keep_buffer, int protected_mode,
476 char* errbuf, size_t errbuf_len)
477{
478 int i;
479
480 cfg->encode_sparse_convert = DEFAULT_SPARSE_CONVERT;
481 cfg->encode_sparse_ratio = DEFAULT_SPARSE_RATIO;
482 cfg->encode_sparse_safe = DEFAULT_SPARSE_SAFE;
483 cfg->encode_max_depth = DEFAULT_ENCODE_MAX_DEPTH;
484 cfg->decode_max_depth = DEFAULT_DECODE_MAX_DEPTH;
485 cfg->encode_invalid_numbers = DEFAULT_ENCODE_INVALID_NUMBERS;
486 cfg->decode_invalid_numbers = DEFAULT_DECODE_INVALID_NUMBERS;
487 cfg->encode_keep_buffer = encode_keep_buffer;
488 cfg->encode_number_precision = DEFAULT_ENCODE_NUMBER_PRECISION;
489 cfg->encode_empty_table_as_object = DEFAULT_ENCODE_EMPTY_TABLE_AS_OBJECT;
490 cfg->decode_array_with_array_mt = DEFAULT_DECODE_ARRAY_WITH_ARRAY_MT;
491 cfg->encode_escape_forward_slash = DEFAULT_ENCODE_ESCAPE_FORWARD_SLASH;
492 cfg->decode_null_as_userdata = DEFAULT_DECODE_NULL_AS_USERDATA;
493
494 cfg->l = l;
495 cfg->protected_mode = protected_mode;
496 cfg->error_message = errbuf;
497 cfg->error_message_length = errbuf_len;
498
499 if (encode_keep_buffer > 0)
500 {
501 strbuf_init(&cfg->encode_buf, 0);
502 }
503
504 /* Decoding init */
505
506 /* Tag all characters as an error */
507 for (i = 0; i < 256; i++)
508 cfg->ch2token[i] = T_ERROR;
509
510 /* Set tokens that require no further processing */
511 cfg->ch2token['{'] = T_OBJ_BEGIN;
512 cfg->ch2token['}'] = T_OBJ_END;
513 cfg->ch2token['['] = T_ARR_BEGIN;
514 cfg->ch2token[']'] = T_ARR_END;
515 cfg->ch2token[','] = T_COMMA;
516 cfg->ch2token[':'] = T_COLON;
517 cfg->ch2token['\0'] = T_END;
518 cfg->ch2token[' '] = T_WHITESPACE;
519 cfg->ch2token['\t'] = T_WHITESPACE;
520 cfg->ch2token['\n'] = T_WHITESPACE;
521 cfg->ch2token['\r'] = T_WHITESPACE;
522
523 /* Update characters that require further processing */
524 cfg->ch2token['f'] = T_UNKNOWN; /* false? */
525 cfg->ch2token['i'] = T_UNKNOWN; /* inf, ininity? */
526 cfg->ch2token['I'] = T_UNKNOWN;
527 cfg->ch2token['n'] = T_UNKNOWN; /* null, nan? */
528 cfg->ch2token['N'] = T_UNKNOWN;
529 cfg->ch2token['t'] = T_UNKNOWN; /* true? */
530 cfg->ch2token['"'] = T_UNKNOWN; /* string? */
531 cfg->ch2token['+'] = T_UNKNOWN; /* number? */

Callers 3

json_create_configFunction · 0.85
lua_cjson_encodeFunction · 0.85
lua_cjson_decodeFunction · 0.85

Calls 4

strbuf_initFunction · 0.85
lua_pushvalueFunction · 0.85
lua_getfieldFunction · 0.85
lua_tobooleanFunction · 0.85

Tested by

no test coverage detected