oj 2.14.2 → 2.14.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -7
- data/ext/oj/extconf.rb +1 -0
- data/ext/oj/fast.c +4 -0
- data/ext/oj/hash_test.c +1 -2
- data/ext/oj/reader.c +3 -2
- data/lib/oj/version.rb +1 -1
- data/test/test_scp.rb +17 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e9413b81d3efaee1f673a90f9f6fbbfa3c8ebe2
|
4
|
+
data.tar.gz: cf61d3cf4f800dc535befff9ac0ca436356727e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 321c45f5f2de1ad7aab6d8cbf595fc911f5172a6688a9816a4efe78a07ec84229e86bd3aa5fd170a8b98434db9aa4aa502ea8cda7f44f0ba1a4e4818446085fe
|
7
|
+
data.tar.gz: f610cf7d169c86dfc02fc6fb5cc3a018cc86a5f890c4a7f2ae251bbf97083ebb6d7307ec907b36c1bfb7fc10fe8bed76ca2c756716288228a60bea31e8d09d8a
|
data/README.md
CHANGED
@@ -159,14 +159,9 @@ Oj.default_options = {:mode => :compat }
|
|
159
159
|
|
160
160
|
## Releases
|
161
161
|
|
162
|
-
**Release 2.14.
|
162
|
+
**Release 2.14.3**
|
163
163
|
|
164
|
-
-
|
165
|
-
|
166
|
-
**Release 2.14.1**
|
167
|
-
|
168
|
-
- Fixed bug that reverted to BigDecimal when a decimal had preceeding zeros
|
169
|
-
after the decimal point.
|
164
|
+
- Updated to support Ruby 2.3.0.
|
170
165
|
|
171
166
|
[Older release notes](http://www.ohler.com/dev/oj_misc/release_notes.html).
|
172
167
|
|
data/ext/oj/extconf.rb
CHANGED
@@ -34,6 +34,7 @@ dflags = {
|
|
34
34
|
'USE_RB_MUTEX' => (is_windows && !('1' == version[0] && '8' == version[1])) ? 1 : 0,
|
35
35
|
'DATETIME_1_8' => ('ruby' == type && ('1' == version[0] && '8' == version[1])) ? 1 : 0,
|
36
36
|
'NO_TIME_ROUND_PAD' => ('rubinius' == type) ? 1 : 0,
|
37
|
+
'HAS_DATA_OBJECT_WRAP' => ('ruby' == type && '2' == version[0] && '3' <= version[1]) ? 1 : 0,
|
37
38
|
}
|
38
39
|
# This is a monster hack to get around issues with 1.9.3-p0 on CentOS 5.4. SO
|
39
40
|
# some reason math.h and string.h contents are not processed. Might be a
|
data/ext/oj/fast.c
CHANGED
@@ -813,7 +813,11 @@ parse_json(VALUE clas, char *json, int given, int allocated) {
|
|
813
813
|
}
|
814
814
|
#endif
|
815
815
|
// last arg is free func void* func(void*)
|
816
|
+
#if HAS_DATA_OBJECT_WRAP
|
817
|
+
doc->self = rb_data_object_wrap(clas, doc, 0, free_doc_cb);
|
818
|
+
#else
|
816
819
|
doc->self = rb_data_object_alloc(clas, doc, 0, free_doc_cb);
|
820
|
+
#endif
|
817
821
|
rb_gc_register_address(&doc->self);
|
818
822
|
doc->json = json;
|
819
823
|
DATA_PTR(doc->self) = doc;
|
data/ext/oj/hash_test.c
CHANGED
@@ -445,9 +445,8 @@ static struct _StrLen data[] = {
|
|
445
445
|
static uint64_t
|
446
446
|
micro_time() {
|
447
447
|
struct timeval tv;
|
448
|
-
struct timezone tz;
|
449
448
|
|
450
|
-
gettimeofday(&tv,
|
449
|
+
gettimeofday(&tv, NULL);
|
451
450
|
|
452
451
|
return (uint64_t)tv.tv_sec * 1000000ULL + (uint64_t)tv.tv_usec;
|
453
452
|
}
|
data/ext/oj/reader.c
CHANGED
@@ -109,7 +109,7 @@ int
|
|
109
109
|
oj_reader_read(Reader reader) {
|
110
110
|
int err;
|
111
111
|
size_t shift = 0;
|
112
|
-
|
112
|
+
|
113
113
|
if (0 == reader->read_func) {
|
114
114
|
return -1;
|
115
115
|
}
|
@@ -165,7 +165,7 @@ rescue_cb(VALUE rbuf, VALUE err) {
|
|
165
165
|
if (rb_eTypeError != clas && rb_eEOFError != clas) {
|
166
166
|
Reader reader = (Reader)rbuf;
|
167
167
|
|
168
|
-
rb_raise(
|
168
|
+
rb_raise(clas, "at line %d, column %d\n", reader->line, reader->col);
|
169
169
|
}
|
170
170
|
return Qfalse;
|
171
171
|
}
|
@@ -185,6 +185,7 @@ partial_io_cb(VALUE rbuf) {
|
|
185
185
|
}
|
186
186
|
str = StringValuePtr(rstr);
|
187
187
|
cnt = RSTRING_LEN(rstr);
|
188
|
+
//printf("*** partial read %lu bytes, str: '%s'\n", cnt, str);
|
188
189
|
strcpy(reader->tail, str);
|
189
190
|
reader->read_end = reader->tail + cnt;
|
190
191
|
|
data/lib/oj/version.rb
CHANGED
data/test/test_scp.rb
CHANGED
@@ -73,6 +73,7 @@ class AllHandler < Oj::ScHandler
|
|
73
73
|
end # AllHandler
|
74
74
|
|
75
75
|
class Closer < AllHandler
|
76
|
+
attr_accessor :io
|
76
77
|
def initialize(io)
|
77
78
|
super()
|
78
79
|
@io = io
|
@@ -340,7 +341,13 @@ class ScpTest < Minitest::Test
|
|
340
341
|
[:hash_set, 'one', true]], handler.calls)
|
341
342
|
else
|
342
343
|
read_io.close
|
343
|
-
write_io.write json
|
344
|
+
write_io.write json[0..11]
|
345
|
+
sleep(0.1)
|
346
|
+
begin
|
347
|
+
write_io.write json[12..-1]
|
348
|
+
rescue Exception => e
|
349
|
+
# ignore, should fail to write
|
350
|
+
end
|
344
351
|
write_io.close
|
345
352
|
Process.exit(0)
|
346
353
|
end
|
@@ -357,8 +364,15 @@ class ScpTest < Minitest::Test
|
|
357
364
|
end
|
358
365
|
Thread.start(json) do |j|
|
359
366
|
c = server.accept()
|
360
|
-
c.puts json
|
361
|
-
|
367
|
+
c.puts json[0..11]
|
368
|
+
10.times {
|
369
|
+
break if c.closed?
|
370
|
+
sleep(0.1)
|
371
|
+
}
|
372
|
+
unless c.closed?
|
373
|
+
c.puts json[12..-1]
|
374
|
+
c.close
|
375
|
+
end
|
362
376
|
end
|
363
377
|
begin
|
364
378
|
sock = TCPSocket.new('localhost', 8080)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.14.
|
4
|
+
version: 2.14.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Ohler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|