rjb 1.3.7 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +6 -0
- data/ext/rjb.c +8 -4
- data/test/test_unload.rb +26 -0
- metadata +4 -5
data/ChangeLog
CHANGED
data/ext/rjb.c
CHANGED
@@ -12,10 +12,10 @@
|
|
12
12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
13
|
* Lesser General Public License for more details.
|
14
14
|
*
|
15
|
-
* $Id: rjb.c
|
15
|
+
* $Id: rjb.c 178 2011-12-02 16:14:56Z arton $
|
16
16
|
*/
|
17
17
|
|
18
|
-
#define RJB_VERSION "1.3.
|
18
|
+
#define RJB_VERSION "1.3.8"
|
19
19
|
|
20
20
|
#include "ruby.h"
|
21
21
|
#include "extconf.h"
|
@@ -166,6 +166,7 @@ typedef struct jobject_ruby_table {
|
|
166
166
|
JNIEnv* rjb_attach_current_thread(void)
|
167
167
|
{
|
168
168
|
JNIEnv* env;
|
169
|
+
if (!rjb_jvm) return NULL;
|
169
170
|
(*rjb_jvm)->AttachCurrentThread(rjb_jvm, (void**)&env, '\0');
|
170
171
|
return env;
|
171
172
|
}
|
@@ -1966,8 +1967,11 @@ static VALUE rjb_delete_ref(struct jvi_data* ptr)
|
|
1966
1967
|
static VALUE rj_bridge_free(struct rj_bridge* ptr)
|
1967
1968
|
{
|
1968
1969
|
JNIEnv* jenv = rjb_attach_current_thread();
|
1969
|
-
(
|
1970
|
-
|
1970
|
+
if (jenv)
|
1971
|
+
{
|
1972
|
+
(*jenv)->DeleteLocalRef(jenv, ptr->proxy);
|
1973
|
+
(*jenv)->DeleteLocalRef(jenv, ptr->bridge);
|
1974
|
+
}
|
1971
1975
|
return Qnil;
|
1972
1976
|
}
|
1973
1977
|
|
data/test/test_unload.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
#!/usr/local/env ruby -Ku
|
2
|
+
# encoding: utf-8
|
3
|
+
# $Id: test.rb 176 2011-11-09 14:27:28Z arton $
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'rjb'
|
7
|
+
rescue LoadError
|
8
|
+
require 'rubygems'
|
9
|
+
require 'rjb'
|
10
|
+
end
|
11
|
+
require 'test/unit'
|
12
|
+
|
13
|
+
class TestUnloadRjb < Test::Unit::TestCase
|
14
|
+
include Rjb
|
15
|
+
def setup
|
16
|
+
Rjb::load('.')
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_unload
|
20
|
+
jString = import('java.lang.String')
|
21
|
+
assert_equal 0, Rjb::unload
|
22
|
+
jString = nil
|
23
|
+
GC.start
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rjb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.3.
|
5
|
+
version: 1.3.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- arton
|
@@ -10,8 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
14
|
-
default_executable:
|
13
|
+
date: 2011-12-02 00:00:00 Z
|
15
14
|
dependencies: []
|
16
15
|
|
17
16
|
description: |
|
@@ -42,6 +41,7 @@ files:
|
|
42
41
|
- samples/unzip.rb
|
43
42
|
- test/test.rb
|
44
43
|
- test/exttest.rb
|
44
|
+
- test/test_unload.rb
|
45
45
|
- test/test_osxjvm.rb
|
46
46
|
- test/gctest.rb
|
47
47
|
- test/jp/co/infoseek/hp/arton/rjb/Base.class
|
@@ -58,7 +58,6 @@ files:
|
|
58
58
|
- readme.sj
|
59
59
|
- readme.txt
|
60
60
|
- ext/extconf.rb
|
61
|
-
has_rdoc: true
|
62
61
|
homepage: http://rjb.rubyforge.org/
|
63
62
|
licenses: []
|
64
63
|
|
@@ -83,7 +82,7 @@ requirements:
|
|
83
82
|
- none
|
84
83
|
- JDK 5.0
|
85
84
|
rubyforge_project: rjb
|
86
|
-
rubygems_version: 1.
|
85
|
+
rubygems_version: 1.8.11
|
87
86
|
signing_key:
|
88
87
|
specification_version: 3
|
89
88
|
summary: Ruby Java bridge
|