msgpack 0.3.1-mswin32 → 0.3.2-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/msgpack.so +0 -0
- data/ext/pack.o +0 -0
- data/ext/rbinit.o +0 -0
- data/ext/unpack.c +12 -1
- data/ext/unpack.o +0 -0
- metadata +2 -2
data/ext/msgpack.so
CHANGED
Binary file
|
data/ext/pack.o
CHANGED
Binary file
|
data/ext/rbinit.o
CHANGED
Binary file
|
data/ext/unpack.c
CHANGED
@@ -127,6 +127,15 @@ static inline int template_callback_raw(unpack_user* u, const char* b, const cha
|
|
127
127
|
static VALUE cUnpacker;
|
128
128
|
static VALUE eUnpackError;
|
129
129
|
|
130
|
+
// FIXME slow operation
|
131
|
+
static void init_stack(msgpack_unpack_t* mp)
|
132
|
+
{
|
133
|
+
size_t i;
|
134
|
+
for(i=0; i < MSGPACK_MAX_STACK_SIZE; ++i) {
|
135
|
+
mp->stack[i].map_key = Qnil; /* GC */
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
130
139
|
static void MessagePack_Unpacker_free(void* data)
|
131
140
|
{
|
132
141
|
if(data) { free(data); }
|
@@ -137,7 +146,7 @@ static void MessagePack_Unpacker_mark(msgpack_unpack_t *mp)
|
|
137
146
|
unsigned int i;
|
138
147
|
for(i=0; i < mp->top; ++i) {
|
139
148
|
rb_gc_mark(mp->stack[i].obj);
|
140
|
-
rb_gc_mark(mp->stack[i].map_key);
|
149
|
+
rb_gc_mark(mp->stack[i].map_key); /* maybe map_key is not initialized */
|
141
150
|
}
|
142
151
|
}
|
143
152
|
|
@@ -154,6 +163,7 @@ static VALUE MessagePack_Unpacker_reset(VALUE self)
|
|
154
163
|
{
|
155
164
|
UNPACKER(self, mp);
|
156
165
|
template_init(mp);
|
166
|
+
init_stack(mp);
|
157
167
|
unpack_user u = {0, Qnil};
|
158
168
|
mp->user = u;
|
159
169
|
return self;
|
@@ -281,6 +291,7 @@ static VALUE MessagePack_unpack_limit(VALUE self, VALUE data, VALUE limit)
|
|
281
291
|
|
282
292
|
msgpack_unpack_t mp;
|
283
293
|
template_init(&mp);
|
294
|
+
init_stack(&mp);
|
284
295
|
unpack_user u = {0, Qnil};
|
285
296
|
mp.user = u;
|
286
297
|
|
data/ext/unpack.o
CHANGED
Binary file
|
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.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: mswin32
|
6
6
|
authors:
|
7
7
|
- FURUHASHI Sadayuki
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-11 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|