msgpack 0.5.10 → 0.5.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/ChangeLog +10 -0
- data/ext/msgpack/buffer.c +12 -0
- data/ext/msgpack/unpacker.c +5 -5
- data/ext/msgpack/unpacker.h +3 -3
- data/ext/msgpack/unpacker_class.c +4 -4
- data/lib/msgpack/version.rb +1 -1
- data/spec/unpack_spec.rb +0 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YmU2YTk2ZGQ2NTEzN2ZjZjVlZTU4MjExZTUyNTMzNjdjNGNkYTM4Mw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YmQ2ZGQ4NjEyMWZlODk2NzE0NzkwY2YxZThkY2E3MDVmNGY2NzRjZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmZjODQxMjA4MDM3NjFmM2RiMDQ4YTZlMjYyNGI5MmM3NWI5NzQyMTZmODll
|
10
|
+
NjA3MGJlODFhYTg5YTNlYTA4YTM1MTQxNDRhMTg5ZjUxYTA0NjUwNGE4MjU4
|
11
|
+
YTk1N2M2ZWZmMDQ2OWNjODFlZGNmZjBkY2E5OGYwOGQyN2IwMWY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NzcwODU2ZjViYTYyMGUxOWU2Y2E4Yjc2YzVhMGQ1ZjIzYmMwY2Q4NTVkYTI3
|
14
|
+
YzdiOGQ3M2IzZGI3ZmRhYjIyZjdjMDI3NjZkYTEzZjY2YmVmNWM4NDQ5NjFk
|
15
|
+
NThkMGEyZTMwMmUyOThjYzdkOWY5NDE1Yzg0ZTNhMWU5NjZjYjA=
|
data/ChangeLog
CHANGED
@@ -1,4 +1,14 @@
|
|
1
1
|
|
2
|
+
2015-02-04 version 0.5.11:
|
3
|
+
|
4
|
+
* Fixed Encoding::CompatibilityError error when serializing a long string
|
5
|
+
longer than write_reference_threshold (5KB by default) and whose encoding
|
6
|
+
is not ASCII-8BIT.
|
7
|
+
* Fix read_(map|array)_header (@funny-falcon++).
|
8
|
+
* Internally, rename msgpack_unpacker_{init,reset,destroy} functions
|
9
|
+
so that we can load msgpack-c in the same process (@miihael++)
|
10
|
+
|
11
|
+
|
2
12
|
2015-01-09 version 0.5.10:
|
3
13
|
|
4
14
|
* Merged msgpack-jruby by @iconara. JRuby can run `require 'msgpack'` to use
|
data/ext/msgpack/buffer.c
CHANGED
@@ -332,7 +332,19 @@ void _msgpack_buffer_append_long_string(msgpack_buffer_t* b, VALUE string)
|
|
332
332
|
|
333
333
|
if(b->io != Qnil) {
|
334
334
|
msgpack_buffer_flush(b);
|
335
|
+
#ifdef COMPAT_HAVE_ENCODING
|
336
|
+
if (ENCODING_GET(string) == s_enc_ascii8bit) {
|
337
|
+
rb_funcall(b->io, b->io_write_all_method, 1, string);
|
338
|
+
} else if(!STR_DUP_LIKELY_DOES_COPY(string)) {
|
339
|
+
VALUE s = rb_str_dup(string);
|
340
|
+
ENCODING_SET(s, s_enc_ascii8bit);
|
341
|
+
rb_funcall(b->io, b->io_write_all_method, 1, s);
|
342
|
+
} else {
|
343
|
+
msgpack_buffer_append(b, RSTRING_PTR(string), length);
|
344
|
+
}
|
345
|
+
#else
|
335
346
|
rb_funcall(b->io, b->io_write_all_method, 1, string);
|
347
|
+
#endif
|
336
348
|
|
337
349
|
} else if(!STR_DUP_LIKELY_DOES_COPY(string)) {
|
338
350
|
_msgpack_buffer_append_reference(b, string);
|
data/ext/msgpack/unpacker.c
CHANGED
@@ -52,7 +52,7 @@ void msgpack_unpacker_static_destroy()
|
|
52
52
|
|
53
53
|
#define HEAD_BYTE_REQUIRED 0xc1
|
54
54
|
|
55
|
-
void
|
55
|
+
void _msgpack_unpacker_init(msgpack_unpacker_t* uk)
|
56
56
|
{
|
57
57
|
memset(uk, 0, sizeof(msgpack_unpacker_t));
|
58
58
|
|
@@ -73,7 +73,7 @@ void msgpack_unpacker_init(msgpack_unpacker_t* uk)
|
|
73
73
|
uk->stack_capacity = MSGPACK_UNPACKER_STACK_CAPACITY;
|
74
74
|
}
|
75
75
|
|
76
|
-
void
|
76
|
+
void _msgpack_unpacker_destroy(msgpack_unpacker_t* uk)
|
77
77
|
{
|
78
78
|
#ifdef UNPACKER_STACK_RMEM
|
79
79
|
msgpack_rmem_free(&s_stack_rmem, uk->stack);
|
@@ -101,7 +101,7 @@ void msgpack_unpacker_mark(msgpack_unpacker_t* uk)
|
|
101
101
|
rb_gc_mark(uk->buffer_ref);
|
102
102
|
}
|
103
103
|
|
104
|
-
void
|
104
|
+
void _msgpack_unpacker_reset(msgpack_unpacker_t* uk)
|
105
105
|
{
|
106
106
|
msgpack_buffer_clear(UNPACKER_BUFFER_(uk));
|
107
107
|
|
@@ -532,7 +532,7 @@ int msgpack_unpacker_read_array_header(msgpack_unpacker_t* uk, uint32_t* result_
|
|
532
532
|
return b;
|
533
533
|
}
|
534
534
|
|
535
|
-
if(0x90
|
535
|
+
if(0x90 <= b && b <= 0x9f) {
|
536
536
|
*result_size = b & 0x0f;
|
537
537
|
|
538
538
|
} else if(b == 0xdc) {
|
@@ -560,7 +560,7 @@ int msgpack_unpacker_read_map_header(msgpack_unpacker_t* uk, uint32_t* result_si
|
|
560
560
|
return b;
|
561
561
|
}
|
562
562
|
|
563
|
-
if(0x80
|
563
|
+
if(0x80 <= b && b <= 0x8f) {
|
564
564
|
*result_size = b & 0x0f;
|
565
565
|
|
566
566
|
} else if(b == 0xde) {
|
data/ext/msgpack/unpacker.h
CHANGED
@@ -78,13 +78,13 @@ void msgpack_unpacker_static_init();
|
|
78
78
|
|
79
79
|
void msgpack_unpacker_static_destroy();
|
80
80
|
|
81
|
-
void
|
81
|
+
void _msgpack_unpacker_init(msgpack_unpacker_t* uk);
|
82
82
|
|
83
|
-
void
|
83
|
+
void _msgpack_unpacker_destroy(msgpack_unpacker_t* uk);
|
84
84
|
|
85
85
|
void msgpack_unpacker_mark(msgpack_unpacker_t* uk);
|
86
86
|
|
87
|
-
void
|
87
|
+
void _msgpack_unpacker_reset(msgpack_unpacker_t* uk);
|
88
88
|
|
89
89
|
static inline void msgpack_unpacker_set_symbolized_keys(msgpack_unpacker_t* uk, bool enable)
|
90
90
|
{
|
@@ -42,14 +42,14 @@ static void Unpacker_free(msgpack_unpacker_t* uk)
|
|
42
42
|
if(uk == NULL) {
|
43
43
|
return;
|
44
44
|
}
|
45
|
-
|
45
|
+
_msgpack_unpacker_destroy(uk);
|
46
46
|
free(uk);
|
47
47
|
}
|
48
48
|
|
49
49
|
static VALUE Unpacker_alloc(VALUE klass)
|
50
50
|
{
|
51
51
|
msgpack_unpacker_t* uk = ALLOC_N(msgpack_unpacker_t, 1);
|
52
|
-
|
52
|
+
_msgpack_unpacker_init(uk);
|
53
53
|
|
54
54
|
VALUE self = Data_Wrap_Struct(klass, msgpack_unpacker_mark, Unpacker_free, uk);
|
55
55
|
|
@@ -292,7 +292,7 @@ static VALUE Unpacker_reset(VALUE self)
|
|
292
292
|
{
|
293
293
|
UNPACKER(self, uk);
|
294
294
|
|
295
|
-
|
295
|
+
_msgpack_unpacker_reset(uk);
|
296
296
|
|
297
297
|
return Qnil;
|
298
298
|
}
|
@@ -318,7 +318,7 @@ VALUE MessagePack_unpack(int argc, VALUE* argv)
|
|
318
318
|
|
319
319
|
VALUE self = Unpacker_alloc(cMessagePack_Unpacker);
|
320
320
|
UNPACKER(self, uk);
|
321
|
-
//
|
321
|
+
//_msgpack_unpacker_reset(s_unpacker);
|
322
322
|
//msgpack_buffer_reset_io(UNPACKER_BUFFER_(s_unpacker));
|
323
323
|
|
324
324
|
/* prefer reference than copying; see MessagePack_Unpacker_module_init */
|
data/lib/msgpack/version.rb
CHANGED
data/spec/unpack_spec.rb
CHANGED
@@ -23,9 +23,6 @@ describe MessagePack do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "msgpack str 8 type" do
|
26
|
-
if /java/ =~ RUBY_PLATFORM
|
27
|
-
skip "str 8 type is not supported in JRuby (incompatibility)"
|
28
|
-
end
|
29
26
|
MessagePack.unpack([0xd9, 0x00].pack('C*')).should == ""
|
30
27
|
MessagePack.unpack([0xd9, 0x01].pack('C*') + 'a').should == "a"
|
31
28
|
MessagePack.unpack([0xd9, 0x02].pack('C*') + 'aa').should == "aa"
|
@@ -44,27 +41,18 @@ describe MessagePack do
|
|
44
41
|
end
|
45
42
|
|
46
43
|
it "msgpack bin 8 type" do
|
47
|
-
if /java/ =~ RUBY_PLATFORM
|
48
|
-
skip "bin 8 type is not supported in JRuby (incompatibility)"
|
49
|
-
end
|
50
44
|
MessagePack.unpack([0xc4, 0x00].pack('C*')).should == ""
|
51
45
|
MessagePack.unpack([0xc4, 0x01].pack('C*') + 'a').should == "a"
|
52
46
|
MessagePack.unpack([0xc4, 0x02].pack('C*') + 'aa').should == "aa"
|
53
47
|
end
|
54
48
|
|
55
49
|
it "msgpack bin 16 type" do
|
56
|
-
if /java/ =~ RUBY_PLATFORM
|
57
|
-
skip "bin 16 type is not supported in JRuby (incompatibility)"
|
58
|
-
end
|
59
50
|
MessagePack.unpack([0xc5, 0x00, 0x00].pack('C*')).should == ""
|
60
51
|
MessagePack.unpack([0xc5, 0x00, 0x01].pack('C*') + 'a').should == "a"
|
61
52
|
MessagePack.unpack([0xc5, 0x00, 0x02].pack('C*') + 'aa').should == "aa"
|
62
53
|
end
|
63
54
|
|
64
55
|
it "msgpack bin 32 type" do
|
65
|
-
if /java/ =~ RUBY_PLATFORM
|
66
|
-
skip "bin 32 type is not supported in JRuby (incompatibility)"
|
67
|
-
end
|
68
56
|
MessagePack.unpack([0xc6, 0x00, 0x00, 0x00, 0x00].pack('C*')).should == ""
|
69
57
|
MessagePack.unpack([0xc6, 0x00, 0x00, 0x00, 0x01].pack('C*') + 'a').should == "a"
|
70
58
|
MessagePack.unpack([0xc6, 0x00, 0x00, 0x00, 0x02].pack('C*') + 'aa').should == "aa"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msgpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-02-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|