Hi

im working with cext recently on Linux and faced this problem.

Say we want to link a ruby app with 'awesome.so' witch has the init
method 'init_awesome'.
But if the 'awesome.so' is actually a symbolic link 'awesome.so.1',
ModuleLoader.java ends up calling 'init_awesome.so' method that does
not exist.

following change will fix this.

diff --git a/src/org/jruby/cext/ModuleLoader.java
b/src/org/jruby/cext/ModuleLoader.java
index 73c3e24..941ebf2 100644
--- a/src/org/jruby/cext/ModuleLoader.java
+++ b/src/org/jruby/cext/ModuleLoader.java
@@ -58,7 +58,7 @@ public class ModuleLoader {
        String fileName = new File(name).getName();
        String initName = fileName;
        int dotPos;
-        if ((dotPos = fileName.lastIndexOf('.')) != -1) {
+        if ((dotPos = fileName.indexOf('.')) != -1) {
            // Remove the extension, if needed
            initName = fileName.substring(0, dotPos);
        }


Obakestar

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to