rjb 1.1.7 → 1.1.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.
Files changed (5) hide show
  1. data/ChangeLog +5 -0
  2. data/ext/load.c +23 -7
  3. data/ext/rjb.c +2 -2
  4. metadata +46 -40
  5. data/ext/extconf.h +0 -9
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ Mon Sep 07 arton
2
+ *ext/load.c
3
+ Check no compat type dylib after loading was failed (for Snow Leopard)
4
+ *ext/rjb.c
5
+ RJB_VERSION -> 1.1.8
1
6
  Sun Feb 15 arton
2
7
  *test/test/rb
3
8
  add $KCODE and magic comment for iconv
data/ext/load.c CHANGED
@@ -12,7 +12,7 @@
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: load.c 85 2009-02-04 16:14:22Z kuwa1 $
15
+ * $Id: load.c 91 2009-09-07 14:13:17Z arton $
16
16
  */
17
17
 
18
18
  #include <stdlib.h>
@@ -45,7 +45,7 @@
45
45
  #endif
46
46
  #define CLASSPATH_SEP ';'
47
47
  #elif defined(__APPLE__) && defined(__MACH__)
48
- #define JVMDLL "%s/Libraries/libjvm_compat.dylib"
48
+ static char* JVMDLL = "%s/Libraries/libjvm_compat.dylib";
49
49
  #define DIRSEPARATOR '/'
50
50
  #define CLASSPATH_SEP ':'
51
51
  #define HOME_NAME "/Home"
@@ -82,6 +82,14 @@
82
82
  #define CLASSPATH_SEP ':'
83
83
  #endif
84
84
 
85
+ #if defined(__APPLE__) && defined(__MACH__)
86
+ static char* CREATEJVM = "JNI_CreateJavaVM";
87
+ static char* GETDEFAULTJVMINITARGS = "JNI_GetDefaultJavaVMInitArgs";
88
+ #else
89
+ #define CREATEJVM "JNI_CreateJavaVM"
90
+ #define GETDEFAULTJVMINITARGS "JNI_GetDefaultJavaVMInitArgs"
91
+ #endif
92
+
85
93
  typedef int (*GETDEFAULTJAVAVMINITARGS)(void*);
86
94
  typedef int (*CREATEJAVAVM)(JavaVM**, JNIEnv**, void*);
87
95
 
@@ -172,11 +180,11 @@ static int load_jvm(char* jvmtype)
172
180
  }
173
181
  /* get function pointers of JNI */
174
182
  #if RJB_RUBY_VERSION_CODE < 190
175
- getdefaultjavavminitargsfunc = rb_funcall(rb_funcall(rb_funcall(jvmdll, rb_intern("[]"), 2, rb_str_new2("JNI_GetDefaultJavaVMInitArgs"), rb_str_new2("IP")), rb_intern("to_ptr"), 0), rb_intern("to_i"), 0);
176
- createjavavmfunc = rb_funcall(rb_funcall(rb_funcall(jvmdll, rb_intern("[]"), 2, rb_str_new2("JNI_CreateJavaVM"), rb_str_new2("IPPP")), rb_intern("to_ptr"), 0), rb_intern("to_i"), 0);
183
+ getdefaultjavavminitargsfunc = rb_funcall(rb_funcall(rb_funcall(jvmdll, rb_intern("[]"), 2, rb_str_new2(GETDEFAULTJVMINITARGS), rb_str_new2("IP")), rb_intern("to_ptr"), 0), rb_intern("to_i"), 0);
184
+ createjavavmfunc = rb_funcall(rb_funcall(rb_funcall(jvmdll, rb_intern("[]"), 2, rb_str_new2(CREATEJVM), rb_str_new2("IPPP")), rb_intern("to_ptr"), 0), rb_intern("to_i"), 0);
177
185
  #else
178
- getdefaultjavavminitargsfunc = rb_funcall(jvmdll, rb_intern("[]"), 1, rb_str_new2("JNI_GetDefaultJavaVMInitArgs"));
179
- createjavavmfunc = rb_funcall(jvmdll, rb_intern("[]"), 1, rb_str_new2("JNI_CreateJavaVM"));
186
+ getdefaultjavavminitargsfunc = rb_funcall(jvmdll, rb_intern("[]"), 1, rb_str_new2(GETDEFAULTJVMINITARGS));
187
+ createjavavmfunc = rb_funcall(jvmdll, rb_intern("[]"), 1, rb_str_new2(CREATEJVM));
180
188
  #endif
181
189
  return 1;
182
190
  }
@@ -256,7 +264,15 @@ int rjb_create_jvm(JNIEnv** pjenv, JavaVMInitArgs* vm_args, char* userpath, VALU
256
264
 
257
265
  if (!RTEST(jvmdll))
258
266
  {
259
- if (!(load_jvm(JVM_TYPE) || load_jvm(ALT_JVM_TYPE)))
267
+ #if defined(__APPLE__) && defined(__MACH__)
268
+ if (!(load_jvm(JVM_TYPE) || load_jvm(ALT_JVM_TYPE)))
269
+ {
270
+ JVMDLL = "%s/Libraries/libjvm.dylib";
271
+ CREATEJVM = "JNI_CreateJavaVM_Impl";
272
+ GETDEFAULTJVMINITARGS = "JNI_GetDefaultJavaVMInitArgs_Impl";
273
+ }
274
+ #endif
275
+ if (!(load_jvm(JVM_TYPE) || load_jvm(ALT_JVM_TYPE)))
260
276
  {
261
277
  return -1;
262
278
  }
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 89 2009-02-15 12:31:40Z arton $
15
+ * $Id: rjb.c 91 2009-09-07 14:13:17Z arton $
16
16
  */
17
17
 
18
- #define RJB_VERSION "1.1.7"
18
+ #define RJB_VERSION "1.1.8"
19
19
 
20
20
  #include "ruby.h"
21
21
  #include "extconf.h"
metadata CHANGED
@@ -1,43 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
3
- specification_version: 1
4
2
  name: rjb
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.1.7
7
- date: 2009-02-15 00:00:00 +09:00
8
- summary: Ruby Java bridge
9
- require_paths:
10
- - lib
11
- email: artonx@gmail.com
12
- homepage: http://rjb.rubyforge.org/
13
- rubyforge_project:
14
- description: RJB is a bridge program that connect between Ruby and Java with Java Native Interface.
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.8.2
24
- version:
4
+ version: 1.1.8
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - arton
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-09-07 00:00:00 +09:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: RJB is a bridge program that connect between Ruby and Java with Java Native Interface.
17
+ email: artonx@gmail.com
18
+ executables: []
19
+
20
+ extensions:
21
+ - ext/extconf.rb
22
+ extra_rdoc_files: []
23
+
31
24
  files:
32
25
  - ext/RBridge.java
33
- - ext/rjbexception.c
34
- - ext/riconv.c
35
26
  - ext/load.c
27
+ - ext/riconv.c
36
28
  - ext/rjb.c
29
+ - ext/rjbexception.c
37
30
  - ext/jniwrap.h
38
- - ext/riconv.h
39
31
  - ext/jp_co_infoseek_hp_arton_rjb_RBridge.h
40
- - ext/extconf.h
32
+ - ext/riconv.h
41
33
  - ext/rjb.h
42
34
  - ext/depend
43
35
  - data/rjb/jp/co/infoseek/hp/arton/rjb/RBridge.class
@@ -45,27 +37,41 @@ files:
45
37
  - samples/filechooser.rb
46
38
  - test/gctest.rb
47
39
  - test/test.rb
40
+ - test/jp/co/infoseek/hp/arton/rjb/Base.class
48
41
  - test/jp/co/infoseek/hp/arton/rjb/ExtBase.class
49
- - test/jp/co/infoseek/hp/arton/rjb/Test.class
50
42
  - test/jp/co/infoseek/hp/arton/rjb/IBase.class
51
- - test/jp/co/infoseek/hp/arton/rjb/Base.class
52
43
  - test/jp/co/infoseek/hp/arton/rjb/Test$TestTypes.class
44
+ - test/jp/co/infoseek/hp/arton/rjb/Test.class
53
45
  - COPYING
54
46
  - ChangeLog
55
47
  - readme.sj
56
48
  - readme.txt
57
- test_files:
58
- - test/test.rb
49
+ has_rdoc: false
50
+ homepage: http://rjb.rubyforge.org/
51
+ post_install_message:
59
52
  rdoc_options: []
60
53
 
61
- extra_rdoc_files: []
62
-
63
- executables: []
64
-
65
- extensions:
66
- - ext/extconf.rb
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.8.2
61
+ version:
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ version:
67
68
  requirements:
68
69
  - none
69
70
  - JDK 5.0
70
- dependencies: []
71
-
71
+ rubyforge_project:
72
+ rubygems_version: 1.3.1
73
+ signing_key:
74
+ specification_version: 2
75
+ summary: Ruby Java bridge
76
+ test_files:
77
+ - test/test.rb
@@ -1,9 +0,0 @@
1
- #ifndef EXTCONF_H
2
- #define EXTCONF_H
3
- #define HAVE_JNI_H 1
4
- #define HAVE_DL_H 1
5
- #define HAVE_NL_LANGINFO 1
6
- #define HAVE_SETLOCALE 1
7
- #define HAVE_GETENV 1
8
- #define RJB_RUBY_VERSION_CODE 187
9
- #endif