This is an automated email from the git hooks/post-receive script.

js pushed a commit to tag 0.55
in repository libinline-java-perl.

commit b116834664962fe2a7ceda19eb9653125f6c827b
Author: Patrick LeBoutillier <p...@cpan.org>
Date:   Thu Nov 1 13:57:27 2001 +0000

    localize file handles
---
 Java.pm | 59 +++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 37 insertions(+), 22 deletions(-)

diff --git a/Java.pm b/Java.pm
index c517ef3..92927cb 100644
--- a/Java.pm
+++ b/Java.pm
@@ -420,16 +420,16 @@ sub write_java {
        $o->mkpath($build_dir) ;
 
        if (! $study_only){
-               open(JAVA, ">$build_dir/$modfname.java") or
+               open(Inline::Java::JAVA, ">$build_dir/$modfname.java") or
                        croak "Can't open $build_dir/$modfname.java: $!" ;
-               Inline::Java::Init::DumpUserJavaCode(\*JAVA, $modfname, $code) ;
-               close(JAVA) ;
+               Inline::Java::Init::DumpUserJavaCode(\*Inline::Java::JAVA, 
$modfname, $code) ;
+               close(Inline::Java::JAVA) ;
        }
 
-       open(JAVA, ">$build_dir/InlineJavaServer.java") or
+       open(Inline::Java::JAVA, ">$build_dir/InlineJavaServer.java") or
                croak "Can't open $build_dir/InlineJavaServer.java: $!" ;
-       Inline::Java::Init::DumpServerJavaCode(\*JAVA, $modfname) ;
-       close(JAVA) ;
+       Inline::Java::Init::DumpServerJavaCode(\*Inline::Java::JAVA, $modfname) 
;
+       close(Inline::Java::JAVA) ;
 
        Inline::Java::debug("write_java done.") ;
 }
@@ -528,9 +528,9 @@ sub compile_error_msg {
 
        my $build_dir = $o->get_api('build_dir') ;
        my $error = '' ;
-       if (open(CMD, "<cmd.out")){
-               $error = join("", <CMD>) ;
-               close(CMD) ;
+       if (open(Inline::Java::CMD, "<cmd.out")){
+               $error = join("", <Inline::Java::CMD>) ;
+               close(Inline::Java::CMD) ;
        }
 
        my $lang = $o->get_api('language') ;
@@ -598,10 +598,10 @@ sub touch_file {
 
        my $pfile = portable("RE_FILE", $file) ;
 
-       if (! open(TOUCH, ">$pfile")){
+       if (! open(Inline::Java::TOUCH, ">$pfile")){
                croak "Can't create file $pfile" ;
        }
-       close(TOUCH) ;
+       close(Inline::Java::TOUCH) ;
 
        return '' ;
 }
@@ -631,6 +631,15 @@ sub load {
        }
 
        # Add our Inline object to the list.
+       my $prev_o = $INLINES->{$modfname} ;
+       if (defined($prev_o)){
+               Inline::Java::debug("Module '$modfname' was already loaded, 
importing binding into new instance") ;
+               if (! defined($o->{ILSM}->{data})){
+                       $o->{ILSM}->{data} = [] ;
+               }
+               push @{$o->{ILSM}->{data}}, @{$prev_o->{ILSM}->{data}} ;        
        
+       }
+
        $INLINES->{$modfname} = $o ;
 
        $o->_study() ;
@@ -674,7 +683,13 @@ sub set_classpath {
 
                        foreach my $m (@modules){
                                $m =~ s/::/$sep_re/g ;
-                               $cp{"$dir$sep$m"} = 1 ;
+
+                               # Here we must make sure that the directory 
exists, or
+                               # else it is removed from the CLASSPATH by Java
+                               my $path = "$dir$sep$m" ;
+                               $o->mkpath($path) ;
+
+                               $cp{$path} = 1 ;
                        }
 
                        delete $cp{$k} ;
@@ -754,9 +769,9 @@ sub report {
                Inline::Java::debug("using jdat cache") ;
                my $size = (-s "$install/$modfname.$suffix") || 0 ;
                if ($size > 0){
-                       if (open(CACHE, "<$install/$modfname.$suffix")){
-                               $resp = join("", <CACHE>) ;
-                               close(CACHE) ;
+                       if (open(Inline::Java::CACHE, 
"<$install/$modfname.$suffix")){
+                               $resp = join("", <Inline::Java::CACHE>) ;
+                               close(Inline::Java::CACHE) ;
                        }
                        else{
                                croak "Can't open $modfname.$suffix file for 
reading" ;
@@ -772,9 +787,9 @@ sub report {
        if (($use_cache)&&($o->{ILSM}->{built})){
                # Update the cache.
                Inline::Java::debug("updating jdat cache") ;
-               if (open(CACHE, ">$install/$modfname.$suffix")){
-                       print CACHE $resp ;
-                       close(CACHE) ;
+               if (open(Inline::Java::CACHE, ">$install/$modfname.$suffix")){
+                       print Inline::Java::CACHE $resp ;
+                       close(Inline::Java::CACHE) ;
                }
                else{
                        croak "Can't open $modfname.$suffix file for writing" ;
@@ -796,7 +811,7 @@ sub load_jdat {
        }
 
        # We need an array here since the same object can have many 
-       # load sessions.
+       # study sessions.
        if (! defined($o->{ILSM}->{data})){
                $o->{ILSM}->{data} = [] ;
        }
@@ -961,7 +976,7 @@ CODE
                        Inline::Java::debug($code) ;
                }
 
-               # open (CODE, ">>code") and print CODE $code and close(CODE) ;
+               # open (Inline::Java::CODE, ">>code") and print CODE $code and 
close(CODE) ;
 
                eval $code ;
 
@@ -1157,11 +1172,11 @@ sub known_to_perl {
 
        no strict 'refs' ;
        if (defined(${$perl_class . "::" . "EXISTS"})){
-               Inline::Java::debug("  returned class exists!") ;
+               Inline::Java::debug("  Perl knows about '$jclass'") ;
                return 1 ;
        }
        else{
-               Inline::Java::debug("  returned class doesn't exist!") ;
+               Inline::Java::debug("  Perl doesn't know about '$jclass'") ;
        }
 
        return 0 ;

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libinline-java-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to