sereal 0.0.16 → 0.0.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/sereal/buffer.h +3 -19
- data/ext/sereal/decode.c +7 -2
- data/ext/sereal/encode.c +1 -1
- data/ext/sereal/extconf.rb +2 -0
- data/ext/sereal/sereal.h +3 -1
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8a56a6cb7a2ba50f8301e8f4d86ed041e86b72c
|
4
|
+
data.tar.gz: 19a41dd12c2323163ad7b2020fe77b6fbe7dcd88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f876f0f313862a4fc5ebc71953e0fe0a734d244912314ac0363b045aa845b29ca56b8b82ccee28ed46da727112490f9327e890f591c0e4b883a8a87e695080e
|
7
|
+
data.tar.gz: b611d10133aaef4f6a5e9a69ba02249b3f97013a5de53237b38078a4e61028665aae044e23e2af6793942be52a7e2a8ace26596f0536ffb30db50ef489f966cc
|
data/ext/sereal/buffer.h
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
#include "sereal.h"
|
2
2
|
#include <errno.h>
|
3
|
-
|
3
|
+
#include <sys/types.h>
|
4
|
+
#include <sys/uio.h>
|
5
|
+
#include <unistd.h>
|
4
6
|
static inline void s_free_data_if_not_mine(sereal_t *s) {
|
5
7
|
if (!(s->flags & __NOT_MINE)) {
|
6
8
|
if (s->data)
|
@@ -190,21 +192,3 @@ static inline void s_set_flag_at_pos(sereal_t *s, u32 pos, u8 flag) {
|
|
190
192
|
u8 *p = s_get_p_at_pos(s,pos,0);
|
191
193
|
*p |= flag;
|
192
194
|
}
|
193
|
-
|
194
|
-
static void b_dump(u8 *p, u32 len, u32 pos) {
|
195
|
-
u32 i;
|
196
|
-
|
197
|
-
fprintf(stderr,"\n-----------\n");
|
198
|
-
for (i = 0; i < len; i++) {
|
199
|
-
if (i == pos)
|
200
|
-
fprintf(stderr," [%c %d] ",p[i],p[i]);
|
201
|
-
else
|
202
|
-
fprintf(stderr," (%c %d) ",p[i],p[i]);
|
203
|
-
}
|
204
|
-
fprintf(stderr,"\n-----------\n");
|
205
|
-
}
|
206
|
-
|
207
|
-
static void s_dump(sereal_t *s) {
|
208
|
-
E("[ pos: %d, size: %d, rsize: %d ]\n",s->pos,s->size,s->rsize);
|
209
|
-
b_dump(s->data,s->size,s->pos);
|
210
|
-
}
|
data/ext/sereal/decode.c
CHANGED
@@ -127,6 +127,7 @@ static VALUE s_read_rb_string_bang(sereal_t *s,u8 t) {
|
|
127
127
|
}
|
128
128
|
#undef RETURN_STRING
|
129
129
|
s_raise(s,rb_eTypeError, "undefined string type %d",t);
|
130
|
+
return Qnil;
|
130
131
|
}
|
131
132
|
|
132
133
|
static VALUE s_read_next_rb_string_bang(sereal_t *s) {
|
@@ -173,6 +174,7 @@ static VALUE s_read_pad(sereal_t *s, u8 tag) {
|
|
173
174
|
|
174
175
|
static VALUE s_read_extend(sereal_t *s, u8 tag) {
|
175
176
|
s_raise(s,rb_eArgError,"extend tags are not supported");
|
177
|
+
return Qnil;
|
176
178
|
}
|
177
179
|
|
178
180
|
static VALUE s_read_ref(sereal_t *s, u8 tag) {
|
@@ -180,7 +182,7 @@ static VALUE s_read_ref(sereal_t *s, u8 tag) {
|
|
180
182
|
s_raise(s,rb_eArgError,"there are no references stored");
|
181
183
|
u64 off = s_get_varint_bang(s);
|
182
184
|
VALUE object = rb_hash_lookup(s->tracked,INT2FIX(off + s->hdr_end));
|
183
|
-
SD(s,"reading reference from offset: %
|
185
|
+
SD(s,"reading reference from offset: %" PRIu64 ", id: %d",off + s->hdr_end,FIX2INT(rb_obj_id(object)));
|
184
186
|
return object;
|
185
187
|
}
|
186
188
|
|
@@ -338,7 +340,7 @@ again:
|
|
338
340
|
return Qnil;
|
339
341
|
}
|
340
342
|
if (size < __MIN_SIZE)
|
341
|
-
s_raise(s,rb_eTypeError,"size(%d) is less then min packet size %d, offset: %
|
343
|
+
s_raise(s,rb_eTypeError,"size(%d) is less then min packet size %d, offset: %" PRIu64,size,__MIN_SIZE,offset);
|
342
344
|
|
343
345
|
s->flags |= __NOT_MINE;
|
344
346
|
s->data = (u8 *) RSTRING_PTR(payload) + offset;
|
@@ -351,6 +353,9 @@ again:
|
|
351
353
|
|
352
354
|
u8 version = s_get_u8_bang(s);
|
353
355
|
u8 suffix = s_get_varint_bang(s);
|
356
|
+
if (suffix > 0)
|
357
|
+
s_raise(s,rb_eTypeError,"HEADER-SUFFIX-SIZE is not supported yet");
|
358
|
+
|
354
359
|
u8 is_compressed;
|
355
360
|
|
356
361
|
if ((version & SRL_PROTOCOL_ENCODING_MASK) == SRL_PROTOCOL_ENCODING_SNAPPY) {
|
data/ext/sereal/encode.c
CHANGED
@@ -433,7 +433,7 @@ method_sereal_encode(VALUE self, VALUE args) {
|
|
433
433
|
s->size = compressed_len + s_header_len + compressed_len_varint + un_compressed_len_varint;
|
434
434
|
s->pos = s->size;
|
435
435
|
}
|
436
|
-
VALUE ret = rb_str_new(s->data,s->size);
|
436
|
+
VALUE ret = rb_str_new((char *) s->data,s->size);
|
437
437
|
s_destroy(s);
|
438
438
|
return ret;
|
439
439
|
}
|
data/ext/sereal/extconf.rb
CHANGED
@@ -2,6 +2,8 @@ require 'mkmf'
|
|
2
2
|
|
3
3
|
have_func("rb_intern_str", ["ruby.h"])
|
4
4
|
have_func("rb_sym_to_s", ["ruby.h"])
|
5
|
+
have_func("rb_hash_clear", ["ruby.h"])
|
6
|
+
$CFLAGS << ' -Wall -Wno-unknown-warning-option -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-declaration-after-statement -Wno-c99-extensions -O3 '
|
5
7
|
|
6
8
|
extension_name = 'sereal'
|
7
9
|
dir_config(extension_name)
|
data/ext/sereal/sereal.h
CHANGED
@@ -112,7 +112,9 @@ extern VALUE SerealPerlObject;
|
|
112
112
|
#ifndef HAVE_RB_SYM_TO_S
|
113
113
|
#define rb_sym_to_s(object) rb_funcall(object,rb_intern("to_s"),0)
|
114
114
|
#endif
|
115
|
-
|
115
|
+
#ifndef HAVE_RB_HASH_CLEAR
|
116
|
+
#define rb_hash_clear(object) rb_funcall(object,rb_intern("clear"),0)
|
117
|
+
#endif
|
116
118
|
#define __RAW 0
|
117
119
|
#define __SNAPPY 1
|
118
120
|
#define __SNAPPY_INCR 2
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sereal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Borislav Nikolov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
description: Sereal encoder/decoder (https://github.com/Sereal/Sereal)
|
@@ -33,44 +33,44 @@ extensions:
|
|
33
33
|
extra_rdoc_files:
|
34
34
|
- ext/sereal/sereal.c
|
35
35
|
files:
|
36
|
-
- bin/rsrl
|
37
|
-
- ext/sereal/buffer.h
|
38
36
|
- ext/sereal/decode.c
|
39
|
-
- ext/sereal/decode.h
|
40
37
|
- ext/sereal/encode.c
|
38
|
+
- ext/sereal/sereal.c
|
39
|
+
- ext/sereal/snappy/csnappy_compress.c
|
40
|
+
- ext/sereal/snappy/csnappy_decompress.c
|
41
|
+
- ext/sereal/buffer.h
|
42
|
+
- ext/sereal/decode.h
|
41
43
|
- ext/sereal/encode.h
|
42
|
-
- ext/sereal/extconf.rb
|
43
44
|
- ext/sereal/proto.h
|
44
|
-
- ext/sereal/sereal.c
|
45
45
|
- ext/sereal/sereal.h
|
46
46
|
- ext/sereal/snappy/csnappy.h
|
47
47
|
- ext/sereal/snappy/csnappy_compat.h
|
48
|
-
- ext/sereal/snappy/csnappy_compress.c
|
49
|
-
- ext/sereal/snappy/csnappy_decompress.c
|
50
48
|
- ext/sereal/snappy/csnappy_internal.h
|
51
49
|
- ext/sereal/snappy/csnappy_internal_userspace.h
|
50
|
+
- ext/sereal/extconf.rb
|
51
|
+
- bin/rsrl
|
52
52
|
homepage: https://github.com/Sereal/Sereal
|
53
53
|
licenses: []
|
54
54
|
metadata: {}
|
55
55
|
post_install_message:
|
56
56
|
rdoc_options:
|
57
|
-
-
|
58
|
-
-
|
57
|
+
- --exclude
|
58
|
+
- .*\.so
|
59
59
|
require_paths:
|
60
60
|
- lib
|
61
61
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
62
|
requirements:
|
63
|
-
- -
|
63
|
+
- - '>='
|
64
64
|
- !ruby/object:Gem::Version
|
65
65
|
version: '0'
|
66
66
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - '>='
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
71
|
requirements: []
|
72
72
|
rubyforge_project:
|
73
|
-
rubygems_version: 2.
|
73
|
+
rubygems_version: 2.0.14
|
74
74
|
signing_key:
|
75
75
|
specification_version: 4
|
76
76
|
summary: Sereal encoder/decoder
|