java_bin 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +18 -0
- data/TODO +1 -0
- data/VERSION +1 -1
- data/ext/java_bin/ext/parser.c +8 -0
- data/java_bin.gemspec +4 -3
- data/test/test_java_bin_parser.rb +10 -0
- metadata +3 -2
data/CHANGELOG
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
0.1.2 (2010/01/12)
|
2
|
+
* fix memory leak error (extern string).
|
3
|
+
|
4
|
+
Example.
|
5
|
+
# OK
|
6
|
+
x.times {
|
7
|
+
@parser = JavaBin.parser.new
|
8
|
+
@parser.parse(xxx...)
|
9
|
+
}
|
10
|
+
|
11
|
+
# BAD!
|
12
|
+
@parser = JavaBin.parser.new
|
13
|
+
x.times {
|
14
|
+
@parser.parse(xxx...)
|
15
|
+
}
|
16
|
+
|
17
|
+
* fix segv problem (extern string).
|
18
|
+
* ruby 1.8.7/1.9.2pre1 all green.
|
data/TODO
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/ext/java_bin/ext/parser.c
CHANGED
@@ -329,6 +329,14 @@ static VALUE rb_cParser_parse(VALUE self, VALUE data) {
|
|
329
329
|
ptr->current = 1; /* VERSIONをとばした */
|
330
330
|
ptr->tag_byte = 0;
|
331
331
|
|
332
|
+
/*
|
333
|
+
* 参照文字列既に確保している場合は解放
|
334
|
+
* HINT. インスタンスを使いまわす時に発生する
|
335
|
+
*/
|
336
|
+
if (ptr->cache) {
|
337
|
+
free(ptr->cache);
|
338
|
+
}
|
339
|
+
|
332
340
|
/* 参照文字列の準備 */
|
333
341
|
ptr->cache = NULL;
|
334
342
|
ptr->cache_index = 0;
|
data/java_bin.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{java_bin}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["kennyj"]
|
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.files = [
|
22
22
|
".document",
|
23
23
|
".gitignore",
|
24
|
+
"CHANGELOG",
|
24
25
|
"LICENSE",
|
25
26
|
"README.rdoc",
|
26
27
|
"Rakefile",
|
@@ -49,8 +50,8 @@ Gem::Specification.new do |s|
|
|
49
50
|
s.rubygems_version = %q{1.3.5}
|
50
51
|
s.summary = %q{Solr JavaBin format implementation for Ruby.}
|
51
52
|
s.test_files = [
|
52
|
-
"test/
|
53
|
-
"test/
|
53
|
+
"test/xxx_performance.rb",
|
54
|
+
"test/test_java_bin_parser.rb",
|
54
55
|
"test/helper.rb"
|
55
56
|
]
|
56
57
|
|
@@ -76,6 +76,16 @@ class TestJavaBinParser < Test::Unit::TestCase
|
|
76
76
|
assert (jb_et * 2) < r_et if @parser.is_a? JavaBin::Ext::Parser
|
77
77
|
end
|
78
78
|
|
79
|
+
def test_memory_allocate
|
80
|
+
(TIMES * 5).times {
|
81
|
+
@parser.parse([1, 0].pack("C*"))
|
82
|
+
}
|
83
|
+
(TIMES * 5).times {
|
84
|
+
@parser = JavaBin.parser.new
|
85
|
+
@parser.parse([1, 0].pack("C*"))
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
79
89
|
def test_null
|
80
90
|
assert_nil @parser.parse([1, 0].pack("C*"))
|
81
91
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: java_bin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kennyj
|
@@ -26,6 +26,7 @@ extra_rdoc_files:
|
|
26
26
|
files:
|
27
27
|
- .document
|
28
28
|
- .gitignore
|
29
|
+
- CHANGELOG
|
29
30
|
- LICENSE
|
30
31
|
- README.rdoc
|
31
32
|
- Rakefile
|
@@ -77,6 +78,6 @@ signing_key:
|
|
77
78
|
specification_version: 3
|
78
79
|
summary: Solr JavaBin format implementation for Ruby.
|
79
80
|
test_files:
|
80
|
-
- test/test_java_bin_parser.rb
|
81
81
|
- test/xxx_performance.rb
|
82
|
+
- test/test_java_bin_parser.rb
|
82
83
|
- test/helper.rb
|