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 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
@@ -1,3 +1,4 @@
1
+ * ChangeLogを準備
1
2
  * 他のgemの依存関係
2
3
  ** rsolr/solr-rubyのmonkey-patch
3
4
  * hashのキーをsymbolにする
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -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.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/test_java_bin_parser.rb",
53
- "test/xxx_performance.rb",
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.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