oj 3.14.2 → 3.14.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -1
  3. data/README.md +0 -1
  4. data/ext/oj/buf.h +2 -2
  5. data/ext/oj/cache.c +16 -16
  6. data/ext/oj/cache8.c +7 -7
  7. data/ext/oj/circarray.c +2 -1
  8. data/ext/oj/circarray.h +2 -2
  9. data/ext/oj/code.c +2 -2
  10. data/ext/oj/code.h +2 -2
  11. data/ext/oj/compat.c +6 -14
  12. data/ext/oj/custom.c +1 -1
  13. data/ext/oj/debug.c +3 -9
  14. data/ext/oj/dump.c +16 -16
  15. data/ext/oj/dump_compat.c +551 -576
  16. data/ext/oj/dump_leaf.c +3 -5
  17. data/ext/oj/dump_object.c +35 -36
  18. data/ext/oj/dump_strict.c +2 -4
  19. data/ext/oj/encoder.c +1 -1
  20. data/ext/oj/err.c +2 -13
  21. data/ext/oj/err.h +9 -12
  22. data/ext/oj/extconf.rb +1 -1
  23. data/ext/oj/fast.c +24 -38
  24. data/ext/oj/intern.c +38 -42
  25. data/ext/oj/intern.h +3 -7
  26. data/ext/oj/mem.c +211 -217
  27. data/ext/oj/mem.h +10 -10
  28. data/ext/oj/mimic_json.c +18 -24
  29. data/ext/oj/object.c +5 -5
  30. data/ext/oj/odd.c +2 -1
  31. data/ext/oj/odd.h +4 -4
  32. data/ext/oj/oj.c +60 -81
  33. data/ext/oj/oj.h +53 -54
  34. data/ext/oj/parse.c +55 -118
  35. data/ext/oj/parse.h +5 -10
  36. data/ext/oj/parser.c +7 -8
  37. data/ext/oj/parser.h +7 -8
  38. data/ext/oj/rails.c +28 -59
  39. data/ext/oj/reader.c +5 -9
  40. data/ext/oj/reader.h +1 -1
  41. data/ext/oj/resolve.c +3 -4
  42. data/ext/oj/rxclass.c +1 -1
  43. data/ext/oj/rxclass.h +1 -1
  44. data/ext/oj/saj.c +4 -4
  45. data/ext/oj/saj2.c +32 -49
  46. data/ext/oj/saj2.h +1 -1
  47. data/ext/oj/scp.c +3 -14
  48. data/ext/oj/sparse.c +18 -67
  49. data/ext/oj/stream_writer.c +5 -18
  50. data/ext/oj/strict.c +7 -13
  51. data/ext/oj/string_writer.c +6 -14
  52. data/ext/oj/trace.h +27 -16
  53. data/ext/oj/usual.c +62 -61
  54. data/ext/oj/usual.h +6 -6
  55. data/ext/oj/util.h +1 -1
  56. data/ext/oj/val_stack.h +4 -4
  57. data/ext/oj/wab.c +7 -9
  58. data/lib/oj/active_support_helper.rb +0 -1
  59. data/lib/oj/bag.rb +7 -1
  60. data/lib/oj/easy_hash.rb +4 -5
  61. data/lib/oj/error.rb +0 -1
  62. data/lib/oj/json.rb +4 -2
  63. data/lib/oj/mimic.rb +4 -2
  64. data/lib/oj/state.rb +8 -5
  65. data/lib/oj/version.rb +1 -2
  66. data/lib/oj.rb +0 -1
  67. data/test/_test_active.rb +0 -1
  68. data/test/_test_active_mimic.rb +0 -1
  69. data/test/_test_mimic_rails.rb +0 -1
  70. data/test/activerecord/result_test.rb +5 -6
  71. data/test/bar.rb +3 -3
  72. data/test/files.rb +1 -1
  73. data/test/foo.rb +5 -48
  74. data/test/helper.rb +1 -4
  75. data/test/isolated/shared.rb +3 -2
  76. data/test/json_gem/json_addition_test.rb +2 -2
  77. data/test/json_gem/json_common_interface_test.rb +4 -4
  78. data/test/json_gem/json_encoding_test.rb +0 -0
  79. data/test/json_gem/json_ext_parser_test.rb +1 -0
  80. data/test/json_gem/json_fixtures_test.rb +3 -2
  81. data/test/json_gem/json_generator_test.rb +43 -32
  82. data/test/json_gem/json_generic_object_test.rb +11 -11
  83. data/test/json_gem/json_parser_test.rb +46 -46
  84. data/test/json_gem/json_string_matching_test.rb +9 -9
  85. data/test/mem.rb +7 -7
  86. data/test/perf.rb +2 -2
  87. data/test/perf_compat.rb +1 -1
  88. data/test/perf_fast.rb +1 -1
  89. data/test/perf_file.rb +2 -2
  90. data/test/perf_object.rb +1 -2
  91. data/test/perf_once.rb +4 -4
  92. data/test/perf_parser.rb +1 -2
  93. data/test/perf_saj.rb +1 -2
  94. data/test/perf_scp.rb +1 -1
  95. data/test/perf_simple.rb +3 -3
  96. data/test/perf_strict.rb +1 -1
  97. data/test/perf_wab.rb +1 -1
  98. data/test/sample/change.rb +0 -1
  99. data/test/sample/dir.rb +0 -1
  100. data/test/sample/doc.rb +0 -1
  101. data/test/sample/file.rb +0 -1
  102. data/test/sample/group.rb +0 -1
  103. data/test/sample/hasprops.rb +0 -1
  104. data/test/sample/layer.rb +0 -1
  105. data/test/sample/rect.rb +0 -1
  106. data/test/sample/shape.rb +0 -1
  107. data/test/sample/text.rb +0 -1
  108. data/test/sample.rb +2 -3
  109. data/test/sample_json.rb +0 -1
  110. data/test/test_compat.rb +11 -9
  111. data/test/test_custom.rb +5 -9
  112. data/test/test_debian.rb +1 -1
  113. data/test/test_fast.rb +10 -20
  114. data/test/test_file.rb +8 -8
  115. data/test/test_integer_range.rb +2 -2
  116. data/test/test_null.rb +5 -3
  117. data/test/test_object.rb +6 -5
  118. data/test/test_parser_saj.rb +23 -21
  119. data/test/test_parser_usual.rb +3 -3
  120. data/test/test_saj.rb +2 -0
  121. data/test/test_scp.rb +6 -6
  122. data/test/test_strict.rb +6 -4
  123. data/test/test_various.rb +21 -24
  124. data/test/test_wab.rb +6 -5
  125. data/test/test_writer.rb +1 -1
  126. metadata +17 -26
  127. data/test/activesupport4/decoding_test.rb +0 -108
  128. data/test/activesupport4/encoding_test.rb +0 -531
  129. data/test/activesupport4/test_helper.rb +0 -41
  130. data/test/activesupport5/abstract_unit.rb +0 -45
  131. data/test/activesupport5/decoding_test.rb +0 -133
  132. data/test/activesupport5/encoding_test.rb +0 -500
  133. data/test/activesupport5/encoding_test_cases.rb +0 -98
  134. data/test/activesupport5/test_helper.rb +0 -72
  135. data/test/activesupport5/time_zone_test_helpers.rb +0 -39
data/ext/oj/parser.h CHANGED
@@ -4,8 +4,8 @@
4
4
  #ifndef OJ_PARSER_H
5
5
  #define OJ_PARSER_H
6
6
 
7
- #include <stdbool.h>
8
7
  #include <ruby.h>
8
+ #include <stdbool.h>
9
9
 
10
10
  #include "buf.h"
11
11
 
@@ -38,7 +38,7 @@ typedef struct _num {
38
38
  bool neg;
39
39
  bool exp_neg;
40
40
  // for numbers as strings, reuse buf
41
- } * Num;
41
+ } *Num;
42
42
 
43
43
  struct _ojParser;
44
44
 
@@ -54,11 +54,11 @@ typedef struct _funcs {
54
54
  void (*close_array)(struct _ojParser *p);
55
55
  void (*open_object)(struct _ojParser *p);
56
56
  void (*close_object)(struct _ojParser *p);
57
- } * Funcs;
57
+ } *Funcs;
58
58
 
59
59
  typedef struct _ojParser {
60
- const char * map;
61
- const char * next_map;
60
+ const char *map;
61
+ const char *next_map;
62
62
  int depth;
63
63
  unsigned char stack[1024];
64
64
 
@@ -67,7 +67,7 @@ typedef struct _ojParser {
67
67
  struct _buf key;
68
68
  struct _buf buf;
69
69
 
70
- struct _funcs funcs[3]; // indexed by XXX_FUN defines
70
+ struct _funcs funcs[3]; // indexed by XXX_FUN defines
71
71
 
72
72
  void (*start)(struct _ojParser *p);
73
73
  VALUE (*option)(struct _ojParser *p, const char *key, VALUE value);
@@ -86,7 +86,7 @@ typedef struct _ojParser {
86
86
  uint32_t ucode;
87
87
  ojType type; // valType
88
88
  bool just_one;
89
- } * ojParser;
89
+ } *ojParser;
90
90
 
91
91
  // Create a new parser without setting the delegate. The parser is
92
92
  // wrapped. The parser is (ojParser)DATA_PTR(value) where value is the return
@@ -98,5 +98,4 @@ extern VALUE oj_parser_new();
98
98
  // Set set the options from a hash (ropts).
99
99
  extern void oj_parser_set_option(ojParser p, VALUE ropts);
100
100
 
101
-
102
101
  #endif /* OJ_PARSER_H */
data/ext/oj/rails.c CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  #include "rails.h"
5
5
 
6
- #include "mem.h"
7
6
  #include "code.h"
8
7
  #include "encode.h"
8
+ #include "mem.h"
9
9
  #include "trace.h"
10
10
  #include "util.h"
11
11
 
@@ -16,7 +16,7 @@ typedef struct _encoder {
16
16
  struct _rOptTable ropts;
17
17
  struct _options opts;
18
18
  VALUE arg;
19
- } * Encoder;
19
+ } *Encoder;
20
20
 
21
21
  bool oj_rails_hash_opt = false;
22
22
  bool oj_rails_array_opt = false;
@@ -141,7 +141,7 @@ static void dump_struct(VALUE obj, int depth, Out out, bool as_ok) {
141
141
  int cnt;
142
142
  int i;
143
143
  int len;
144
- const char * name;
144
+ const char *name;
145
145
 
146
146
  #ifdef RSTRUCT_LEN
147
147
  #if RSTRUCT_LEN_RETURNS_INTEGER_OBJECT
@@ -200,7 +200,7 @@ static void dump_enumerable(VALUE obj, int depth, Out out, bool as_ok) {
200
200
 
201
201
  static void dump_bigdecimal(VALUE obj, int depth, Out out, bool as_ok) {
202
202
  volatile VALUE rstr = oj_safe_string_convert(obj);
203
- const char * str = RSTRING_PTR(rstr);
203
+ const char *str = RSTRING_PTR(rstr);
204
204
 
205
205
  if ('I' == *str || 'N' == *str || ('-' == *str && 'I' == str[1])) {
206
206
  oj_dump_nil(Qnil, depth, out, false);
@@ -263,14 +263,7 @@ static void dump_sec_nano(VALUE obj, int64_t sec, long nsec, Out out) {
263
263
  tzmin);
264
264
  } else if (0 == out->opts->sec_prec) {
265
265
  if (0 == tzsecs && rb_funcall2(obj, oj_utcq_id, 0, 0)) {
266
- len = sprintf(buf,
267
- "%04d-%02d-%02dT%02d:%02d:%02dZ",
268
- ti.year,
269
- ti.mon,
270
- ti.day,
271
- ti.hour,
272
- ti.min,
273
- ti.sec);
266
+ len = sprintf(buf, "%04d-%02d-%02dT%02d:%02d:%02dZ", ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec);
274
267
  } else {
275
268
  len = sprintf(buf,
276
269
  "%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d",
@@ -301,18 +294,7 @@ static void dump_sec_nano(VALUE obj, int64_t sec, long nsec, Out out) {
301
294
  format[32] = '0' + out->opts->sec_prec;
302
295
  len -= 9 - out->opts->sec_prec;
303
296
  }
304
- len = sprintf(buf,
305
- format,
306
- ti.year,
307
- ti.mon,
308
- ti.day,
309
- ti.hour,
310
- ti.min,
311
- ti.sec,
312
- nsec,
313
- tzsign,
314
- tzhour,
315
- tzmin);
297
+ len = sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec, tzsign, tzhour, tzmin);
316
298
  }
317
299
  oj_dump_cstr(buf, len, 0, 0, out);
318
300
  }
@@ -356,7 +338,7 @@ static ID parameters_id = 0;
356
338
  typedef struct _strLen {
357
339
  const char *str;
358
340
  int len;
359
- } * StrLen;
341
+ } *StrLen;
360
342
 
361
343
  static void dump_actioncontroller_parameters(VALUE obj, int depth, Out out, bool as_ok) {
362
344
  if (0 == parameters_id) {
@@ -505,7 +487,7 @@ static void dump_activerecord_result(VALUE obj, int depth, Out out, bool as_ok)
505
487
  typedef struct _namedFunc {
506
488
  const char *name;
507
489
  DumpFunc func;
508
- } * NamedFunc;
490
+ } *NamedFunc;
509
491
 
510
492
  static void dump_as_string(VALUE obj, int depth, Out out, bool as_ok) {
511
493
  if (oj_code_dump(oj_compat_codes, obj, depth, out)) {
@@ -680,8 +662,8 @@ static VALUE encoder_new(int argc, VALUE *argv, VALUE self) {
680
662
  static VALUE resolve_classpath(const char *name) {
681
663
  char class_name[1024];
682
664
  VALUE clas;
683
- char * end = class_name + sizeof(class_name) - 1;
684
- char * s;
665
+ char *end = class_name + sizeof(class_name) - 1;
666
+ char *s;
685
667
  const char *n = name;
686
668
  ID cid;
687
669
 
@@ -747,8 +729,7 @@ static void optimize(int argc, VALUE *argv, ROptTable rot, bool on) {
747
729
  oj_rails_float_opt = on;
748
730
  } else if (oj_string_writer_class == *argv) {
749
731
  string_writer_optimized = on;
750
- } else if (NULL != (ro = oj_rails_get_opt(rot, *argv)) ||
751
- NULL != (ro = create_opt(rot, *argv))) {
732
+ } else if (NULL != (ro = oj_rails_get_opt(rot, *argv)) || NULL != (ro = create_opt(rot, *argv))) {
752
733
  ro->on = on;
753
734
  }
754
735
  }
@@ -810,7 +791,7 @@ rails_mimic_json(VALUE self) {
810
791
  }
811
792
  oj_mimic_json_methods(json);
812
793
  // Setting the default mode breaks the prmoise in the docs not to.
813
- //oj_default_options.mode = RailsMode;
794
+ // oj_default_options.mode = RailsMode;
814
795
 
815
796
  return Qnil;
816
797
  }
@@ -878,7 +859,7 @@ static VALUE rails_optimized(VALUE self, VALUE clas) {
878
859
  typedef struct _oo {
879
860
  Out out;
880
861
  VALUE obj;
881
- } * OO;
862
+ } *OO;
882
863
 
883
864
  static VALUE protect_dump(VALUE ov) {
884
865
  OO oo = (OO)ov;
@@ -908,16 +889,16 @@ static VALUE encode(VALUE obj, ROptTable ropts, Options opts, int argc, VALUE *a
908
889
 
909
890
  oj_out_init(&out);
910
891
 
911
- out.omit_nil = copts.dump_opts.omit_nil;
912
- out.caller = 0;
913
- out.cur = out.buf;
914
- out.circ_cnt = 0;
915
- out.opts = &copts;
916
- out.hash_cnt = 0;
917
- out.indent = copts.indent;
918
- out.argc = argc;
919
- out.argv = argv;
920
- out.ropts = ropts;
892
+ out.omit_nil = copts.dump_opts.omit_nil;
893
+ out.caller = 0;
894
+ out.cur = out.buf;
895
+ out.circ_cnt = 0;
896
+ out.opts = &copts;
897
+ out.hash_cnt = 0;
898
+ out.indent = copts.indent;
899
+ out.argc = argc;
900
+ out.argv = argv;
901
+ out.ropts = ropts;
921
902
  if (Yes == copts.circular) {
922
903
  oj_cache8_new(&out.circ_cache);
923
904
  }
@@ -1062,28 +1043,16 @@ static VALUE rails_set_encoder(VALUE self) {
1062
1043
  verbose = rb_gv_get("$VERBOSE");
1063
1044
  rb_gv_set("$VERBOSE", Qfalse);
1064
1045
  rb_undef_method(encoding, "use_standard_json_time_format=");
1065
- rb_define_module_function(encoding,
1066
- "use_standard_json_time_format=",
1067
- rails_use_standard_json_time_format,
1068
- 1);
1046
+ rb_define_module_function(encoding, "use_standard_json_time_format=", rails_use_standard_json_time_format, 1);
1069
1047
  rb_undef_method(encoding, "use_standard_json_time_format");
1070
- rb_define_module_function(encoding,
1071
- "use_standard_json_time_format",
1072
- rails_use_standard_json_time_format_get,
1073
- 0);
1048
+ rb_define_module_function(encoding, "use_standard_json_time_format", rails_use_standard_json_time_format_get, 0);
1074
1049
 
1075
1050
  pv = rb_iv_get(encoding, "@escape_html_entities_in_json");
1076
1051
  escape_html = Qtrue == pv;
1077
1052
  rb_undef_method(encoding, "escape_html_entities_in_json=");
1078
- rb_define_module_function(encoding,
1079
- "escape_html_entities_in_json=",
1080
- rails_escape_html_entities_in_json,
1081
- 1);
1053
+ rb_define_module_function(encoding, "escape_html_entities_in_json=", rails_escape_html_entities_in_json, 1);
1082
1054
  rb_undef_method(encoding, "escape_html_entities_in_json");
1083
- rb_define_module_function(encoding,
1084
- "escape_html_entities_in_json",
1085
- rails_escape_html_entities_in_json_get,
1086
- 0);
1055
+ rb_define_module_function(encoding, "escape_html_entities_in_json", rails_escape_html_entities_in_json_get, 0);
1087
1056
 
1088
1057
  pv = rb_iv_get(encoding, "@time_precision");
1089
1058
  oj_default_options.sec_prec = NUM2INT(pv);
@@ -1185,7 +1154,7 @@ static void dump_to_hash(VALUE obj, int depth, Out out) {
1185
1154
 
1186
1155
  static void dump_float(VALUE obj, int depth, Out out, bool as_ok) {
1187
1156
  char buf[64];
1188
- char * b;
1157
+ char *b;
1189
1158
  double d = rb_num2dbl(obj);
1190
1159
  int cnt = 0;
1191
1160
 
data/ext/oj/reader.c CHANGED
@@ -64,8 +64,7 @@ void oj_reader_init(Reader reader, VALUE io, int fd, bool to_s) {
64
64
  reader->tail = reader->head;
65
65
  reader->read_end = reader->head + RSTRING_LEN(s);
66
66
  } else if (rb_cFile == io_class && Qnil != (stat = rb_funcall(io, oj_stat_id, 0)) &&
67
- Qnil != (ftype = rb_funcall(stat, oj_ftype_id, 0)) &&
68
- 0 == strcmp("file", StringValuePtr(ftype)) &&
67
+ Qnil != (ftype = rb_funcall(stat, oj_ftype_id, 0)) && 0 == strcmp("file", StringValuePtr(ftype)) &&
69
68
  0 == FIX2INT(rb_funcall(io, oj_pos_id, 0))) {
70
69
  reader->read_func = read_from_fd;
71
70
  reader->fd = FIX2INT(rb_funcall(io, oj_fileno_id, 0));
@@ -84,8 +83,7 @@ void oj_reader_init(Reader reader, VALUE io, int fd, bool to_s) {
84
83
  reader->tail = reader->head;
85
84
  reader->read_end = reader->head + RSTRING_LEN(rstr);
86
85
  } else {
87
- rb_raise(rb_eArgError,
88
- "parser io argument must be a String or respond to readpartial() or read().\n");
86
+ rb_raise(rb_eArgError, "parser io argument must be a String or respond to readpartial() or read().\n");
89
87
  }
90
88
  }
91
89
 
@@ -124,9 +122,7 @@ int oj_reader_read(Reader reader) {
124
122
  reader->str = reader->head + (reader->str - old);
125
123
  }
126
124
  } else {
127
- memmove((char *)reader->head,
128
- reader->head + shift,
129
- reader->read_end - (reader->head + shift));
125
+ memmove((char *)reader->head, reader->head + shift, reader->read_end - (reader->head + shift));
130
126
  reader->tail -= shift;
131
127
  reader->read_end -= shift;
132
128
  if (0 != reader->pro) {
@@ -158,7 +154,7 @@ static VALUE partial_io_cb(VALUE rbuf) {
158
154
  Reader reader = (Reader)rbuf;
159
155
  VALUE args[1];
160
156
  VALUE rstr;
161
- char * str;
157
+ char *str;
162
158
  size_t cnt;
163
159
 
164
160
  args[0] = ULONG2NUM(reader->end - reader->tail);
@@ -179,7 +175,7 @@ static VALUE io_cb(VALUE rbuf) {
179
175
  Reader reader = (Reader)rbuf;
180
176
  VALUE args[1];
181
177
  VALUE rstr;
182
- char * str;
178
+ char *str;
183
179
  size_t cnt;
184
180
 
185
181
  args[0] = ULONG2NUM(reader->end - reader->tail);
data/ext/oj/reader.h CHANGED
@@ -24,7 +24,7 @@ typedef struct _reader {
24
24
  VALUE io;
25
25
  const char *in_str;
26
26
  };
27
- } * Reader;
27
+ } *Reader;
28
28
 
29
29
  extern void oj_reader_init(Reader reader, VALUE io, int fd, bool to_s);
30
30
  extern int oj_reader_read(Reader reader);
data/ext/oj/resolve.c CHANGED
@@ -27,12 +27,11 @@ inline static VALUE resolve_classname(VALUE mod, const char *classname, int auto
27
27
  return clas;
28
28
  }
29
29
 
30
- static VALUE
31
- resolve_classpath(ParseInfo pi, const char *name, size_t len, int auto_define, VALUE error_class) {
30
+ static VALUE resolve_classpath(ParseInfo pi, const char *name, size_t len, int auto_define, VALUE error_class) {
32
31
  char class_name[1024];
33
32
  VALUE clas;
34
- char * end = class_name + sizeof(class_name) - 1;
35
- char * s;
33
+ char *end = class_name + sizeof(class_name) - 1;
34
+ char *s;
36
35
  const char *n = name;
37
36
 
38
37
  clas = rb_cObject;
data/ext/oj/rxclass.c CHANGED
@@ -21,7 +21,7 @@ typedef struct _rxC {
21
21
  #endif
22
22
  VALUE clas;
23
23
  char src[256];
24
- } * RxC;
24
+ } *RxC;
25
25
 
26
26
  void oj_rxclass_init(RxClass rc) {
27
27
  *rc->err = '\0';
data/ext/oj/rxclass.h CHANGED
@@ -14,7 +14,7 @@ typedef struct _rxClass {
14
14
  struct _rxC *head;
15
15
  struct _rxC *tail;
16
16
  char err[128];
17
- } * RxClass;
17
+ } *RxClass;
18
18
 
19
19
  extern void oj_rxclass_init(RxClass rc);
20
20
  extern void oj_rxclass_cleanup(RxClass rc);
data/ext/oj/saj.c CHANGED
@@ -14,8 +14,8 @@
14
14
  // Workaround in case INFINITY is not defined in math.h or if the OS is CentOS
15
15
  #define OJ_INFINITY (1.0 / 0.0)
16
16
 
17
- #include "mem.h"
18
17
  #include "encode.h"
18
+ #include "mem.h"
19
19
  #include "oj.h"
20
20
 
21
21
  typedef struct _parseInfo {
@@ -29,7 +29,7 @@ typedef struct _parseInfo {
29
29
  int has_array_end;
30
30
  int has_add_value;
31
31
  int has_error;
32
- } * ParseInfo;
32
+ } *ParseInfo;
33
33
 
34
34
  static void read_next(ParseInfo pi, const char *key);
35
35
  static void read_hash(ParseInfo pi, const char *key);
@@ -642,7 +642,7 @@ oj_saj_parse(int argc, VALUE *argv, VALUE self) {
642
642
  s = rb_funcall2(input, oj_string_id, 0, 0);
643
643
  len = RSTRING_LEN(s) + 1;
644
644
  json = OJ_R_ALLOC_N(char, len);
645
- strcpy(json, rb_string_value_cstr((VALUE *)&s));
645
+ strcpy(json, StringValueCStr(s));
646
646
  #if !IS_WINDOWS
647
647
  } else if (rb_cFile == clas && 0 == FIX2INT(rb_funcall(input, oj_pos_id, 0))) {
648
648
  int fd = FIX2INT(rb_funcall(input, oj_fileno_id, 0));
@@ -660,7 +660,7 @@ oj_saj_parse(int argc, VALUE *argv, VALUE self) {
660
660
  s = rb_funcall2(input, oj_read_id, 0, 0);
661
661
  len = RSTRING_LEN(s) + 1;
662
662
  json = OJ_R_ALLOC_N(char, len);
663
- strcpy(json, rb_string_value_cstr((VALUE *)&s));
663
+ strcpy(json, StringValueCStr(s));
664
664
  } else {
665
665
  rb_raise(rb_eArgError, "saj_parse() expected a String or IO Object.");
666
666
  }
data/ext/oj/saj2.c CHANGED
@@ -1,13 +1,14 @@
1
1
  // Copyright (c) 2021, Peter Ohler, All rights reserved.
2
2
 
3
- #include "mem.h"
3
+ #include "saj2.h"
4
+
4
5
  #include "cache.h"
6
+ #include "mem.h"
5
7
  #include "oj.h"
6
8
  #include "parser.h"
7
- #include "saj2.h"
8
9
 
9
10
  static VALUE get_key(ojParser p) {
10
- Saj d = (Saj)p->ctx;
11
+ Saj d = (Saj)p->ctx;
11
12
  const char *key = buf_str(&p->key);
12
13
  size_t len = buf_len(&p->key);
13
14
  volatile VALUE rkey;
@@ -44,7 +45,7 @@ static void open_object_loc(ojParser p) {
44
45
  }
45
46
 
46
47
  static void open_object_key(ojParser p) {
47
- Saj d = (Saj)p->ctx;
48
+ Saj d = (Saj)p->ctx;
48
49
  volatile VALUE key = get_key(p);
49
50
 
50
51
  push_key(d, key);
@@ -52,7 +53,7 @@ static void open_object_key(ojParser p) {
52
53
  }
53
54
 
54
55
  static void open_object_loc_key(ojParser p) {
55
- Saj d = (Saj)p->ctx;
56
+ Saj d = (Saj)p->ctx;
56
57
  volatile VALUE key = get_key(p);
57
58
 
58
59
  push_key(d, key);
@@ -68,7 +69,7 @@ static void open_array_loc(ojParser p) {
68
69
  }
69
70
 
70
71
  static void open_array_key(ojParser p) {
71
- Saj d = (Saj)p->ctx;
72
+ Saj d = (Saj)p->ctx;
72
73
  volatile VALUE key = get_key(p);
73
74
 
74
75
  push_key(d, key);
@@ -76,7 +77,7 @@ static void open_array_key(ojParser p) {
76
77
  }
77
78
 
78
79
  static void open_array_loc_key(ojParser p) {
79
- Saj d = (Saj)p->ctx;
80
+ Saj d = (Saj)p->ctx;
80
81
  volatile VALUE key = get_key(p);
81
82
 
82
83
  push_key(d, key);
@@ -84,8 +85,8 @@ static void open_array_loc_key(ojParser p) {
84
85
  }
85
86
 
86
87
  static void close_object(ojParser p) {
87
- Saj d = (Saj)p->ctx;
88
- VALUE key = Qnil;
88
+ Saj d = (Saj)p->ctx;
89
+ VALUE key = Qnil;
89
90
 
90
91
  if (OBJECT_FUN == p->stack[p->depth]) {
91
92
  d->tail--;
@@ -98,8 +99,8 @@ static void close_object(ojParser p) {
98
99
  }
99
100
 
100
101
  static void close_object_loc(ojParser p) {
101
- Saj d = (Saj)p->ctx;
102
- VALUE key = Qnil;
102
+ Saj d = (Saj)p->ctx;
103
+ VALUE key = Qnil;
103
104
 
104
105
  if (OBJECT_FUN == p->stack[p->depth]) {
105
106
  d->tail--;
@@ -112,8 +113,8 @@ static void close_object_loc(ojParser p) {
112
113
  }
113
114
 
114
115
  static void close_array(ojParser p) {
115
- Saj d = (Saj)p->ctx;
116
- VALUE key = Qnil;
116
+ Saj d = (Saj)p->ctx;
117
+ VALUE key = Qnil;
117
118
 
118
119
  if (OBJECT_FUN == p->stack[p->depth]) {
119
120
  d->tail--;
@@ -126,8 +127,8 @@ static void close_array(ojParser p) {
126
127
  }
127
128
 
128
129
  static void close_array_loc(ojParser p) {
129
- Saj d = (Saj)p->ctx;
130
- VALUE key = Qnil;
130
+ Saj d = (Saj)p->ctx;
131
+ VALUE key = Qnil;
131
132
 
132
133
  if (OBJECT_FUN == p->stack[p->depth]) {
133
134
  d->tail--;
@@ -144,13 +145,7 @@ static void add_null(ojParser p) {
144
145
  }
145
146
 
146
147
  static void add_null_loc(ojParser p) {
147
- rb_funcall(((Saj)p->ctx)->handler,
148
- oj_add_value_id,
149
- 4,
150
- Qnil,
151
- Qnil,
152
- LONG2FIX(p->line),
153
- LONG2FIX(p->cur - p->col));
148
+ rb_funcall(((Saj)p->ctx)->handler, oj_add_value_id, 4, Qnil, Qnil, LONG2FIX(p->line), LONG2FIX(p->cur - p->col));
154
149
  }
155
150
 
156
151
  static void add_null_key(ojParser p) {
@@ -172,13 +167,7 @@ static void add_true(ojParser p) {
172
167
  }
173
168
 
174
169
  static void add_true_loc(ojParser p) {
175
- rb_funcall(((Saj)p->ctx)->handler,
176
- oj_add_value_id,
177
- 4,
178
- Qtrue,
179
- Qnil,
180
- LONG2FIX(p->line),
181
- LONG2FIX(p->cur - p->col));
170
+ rb_funcall(((Saj)p->ctx)->handler, oj_add_value_id, 4, Qtrue, Qnil, LONG2FIX(p->line), LONG2FIX(p->cur - p->col));
182
171
  }
183
172
 
184
173
  static void add_true_key(ojParser p) {
@@ -200,13 +189,7 @@ static void add_false(ojParser p) {
200
189
  }
201
190
 
202
191
  static void add_false_loc(ojParser p) {
203
- rb_funcall(((Saj)p->ctx)->handler,
204
- oj_add_value_id,
205
- 4,
206
- Qfalse,
207
- Qnil,
208
- LONG2FIX(p->line),
209
- LONG2FIX(p->cur - p->col));
192
+ rb_funcall(((Saj)p->ctx)->handler, oj_add_value_id, 4, Qfalse, Qnil, LONG2FIX(p->line), LONG2FIX(p->cur - p->col));
210
193
  }
211
194
 
212
195
  static void add_false_key(ojParser p) {
@@ -316,7 +299,7 @@ static void add_big_key_loc(ojParser p) {
316
299
  }
317
300
 
318
301
  static void add_str(ojParser p) {
319
- Saj d = (Saj)p->ctx;
302
+ Saj d = (Saj)p->ctx;
320
303
  volatile VALUE rstr;
321
304
  const char *str = buf_str(&p->buf);
322
305
  size_t len = buf_len(&p->buf);
@@ -330,7 +313,7 @@ static void add_str(ojParser p) {
330
313
  }
331
314
 
332
315
  static void add_str_loc(ojParser p) {
333
- Saj d = (Saj)p->ctx;
316
+ Saj d = (Saj)p->ctx;
334
317
  volatile VALUE rstr;
335
318
  const char *str = buf_str(&p->buf);
336
319
  size_t len = buf_len(&p->buf);
@@ -344,7 +327,7 @@ static void add_str_loc(ojParser p) {
344
327
  }
345
328
 
346
329
  static void add_str_key(ojParser p) {
347
- Saj d = (Saj)p->ctx;
330
+ Saj d = (Saj)p->ctx;
348
331
  volatile VALUE rstr;
349
332
  const char *str = buf_str(&p->buf);
350
333
  size_t len = buf_len(&p->buf);
@@ -358,7 +341,7 @@ static void add_str_key(ojParser p) {
358
341
  }
359
342
 
360
343
  static void add_str_key_loc(ojParser p) {
361
- Saj d = (Saj)p->ctx;
344
+ Saj d = (Saj)p->ctx;
362
345
  volatile VALUE rstr;
363
346
  const char *str = buf_str(&p->buf);
364
347
  size_t len = buf_len(&p->buf);
@@ -557,8 +540,8 @@ static void mark(ojParser p) {
557
540
  if (NULL == p || NULL == p->ctx) {
558
541
  return;
559
542
  }
560
- Saj d = (Saj)p->ctx;
561
- VALUE *kp;
543
+ Saj d = (Saj)p->ctx;
544
+ VALUE *kp;
562
545
 
563
546
  cache_mark(d->str_cache);
564
547
  if (Qnil != d->handler) {
@@ -576,13 +559,13 @@ static VALUE form_str(const char *str, size_t len) {
576
559
  }
577
560
 
578
561
  void oj_init_saj(ojParser p, Saj d) {
579
- d->klen = 256;
580
- d->keys = OJ_R_ALLOC_N(VALUE, d->klen);
581
- d->tail = d->keys;
582
- d->handler = Qnil;
583
- d->str_cache = cache_create(0, form_str, true, false);
584
- d->cache_str = 16;
585
- d->cache_keys = true;
562
+ d->klen = 256;
563
+ d->keys = OJ_R_ALLOC_N(VALUE, d->klen);
564
+ d->tail = d->keys;
565
+ d->handler = Qnil;
566
+ d->str_cache = cache_create(0, form_str, true, false);
567
+ d->cache_str = 16;
568
+ d->cache_keys = true;
586
569
  d->thread_safe = false;
587
570
 
588
571
  p->ctx = (void *)d;
data/ext/oj/saj2.h CHANGED
@@ -15,7 +15,7 @@ typedef struct _saj {
15
15
  uint8_t cache_str;
16
16
  bool cache_keys;
17
17
  bool thread_safe;
18
- } * Saj;
18
+ } *Saj;
19
19
 
20
20
  // Initialize the parser with the SAJ delegate. If the SAJ delegate is wrapped
21
21
  // then this function is called first and then the parser functions can be
data/ext/oj/scp.c CHANGED
@@ -33,8 +33,7 @@ static VALUE noop_hash_key(ParseInfo pi, const char *key, size_t klen) {
33
33
  return Qundef;
34
34
  }
35
35
 
36
- static void
37
- noop_hash_set_cstr(ParseInfo pi, Val kval, const char *str, size_t len, const char *orig) {
36
+ static void noop_hash_set_cstr(ParseInfo pi, Val kval, const char *str, size_t len, const char *orig) {
38
37
  }
39
38
 
40
39
  static void noop_hash_set_num(ParseInfo pi, Val kval, NumInfo ni) {
@@ -91,12 +90,7 @@ static void hash_set_cstr(ParseInfo pi, Val kval, const char *str, size_t len, c
91
90
  volatile VALUE rstr = rb_str_new(str, len);
92
91
 
93
92
  rstr = oj_encode(rstr);
94
- rb_funcall(pi->handler,
95
- oj_hash_set_id,
96
- 3,
97
- stack_peek(&pi->stack)->val,
98
- oj_calc_hash_key(pi, kval),
99
- rstr);
93
+ rb_funcall(pi->handler, oj_hash_set_id, 3, stack_peek(&pi->stack)->val, oj_calc_hash_key(pi, kval), rstr);
100
94
  }
101
95
 
102
96
  static void hash_set_num(ParseInfo pi, Val kval, NumInfo ni) {
@@ -109,12 +103,7 @@ static void hash_set_num(ParseInfo pi, Val kval, NumInfo ni) {
109
103
  }
110
104
 
111
105
  static void hash_set_value(ParseInfo pi, Val kval, VALUE value) {
112
- rb_funcall(pi->handler,
113
- oj_hash_set_id,
114
- 3,
115
- stack_peek(&pi->stack)->val,
116
- oj_calc_hash_key(pi, kval),
117
- value);
106
+ rb_funcall(pi->handler, oj_hash_set_id, 3, stack_peek(&pi->stack)->val, oj_calc_hash_key(pi, kval), value);
118
107
  }
119
108
 
120
109
  static void array_append_cstr(ParseInfo pi, const char *str, size_t len, const char *orig) {