classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The big NIO


From: Mark Wielaard
Subject: Re: The big NIO
Date: Sun, 11 Apr 2004 15:26:30 +0200

Hi Michael,

On Thu, 2004-04-08 at 22:04, Michael Koch wrote:
> I just commited my big NIO patch. I doesnt contain yet anything from the 
> big pointer discussion. It is just a merge from libgcj. It reworks 
> java.io file operations to use java.nio.channels internally for 
> performance. I have done a full mauve run and found no new strange 
> failures with jamvm. If any problems occur please mail to me.

I am very surprised that you didn't have problems with Mauve tests.
There were a very large number of new failures for me. I had two major
issues which took me quite some time to analyze and resolve. In part
because I knew you claimed that there were no regressions with the new
code.

One was fixed by implementing FileChannelImpl.size() so
[RandomAccess]File[Descriptor] worked again for anything that wanted to
get the size/length of a file. (See email to commit-classpath.)

The other was because of a bug in jamvm with overloaded native JNI
methods were one such method had no (parameter) signature
[FileChannelImpl_read()]. Patch attached. I hope Robert got this in time
to integrate with the upcoming jamvm 1.1.3 release.

Cheers,

Mark
--- src/dll.c.orig      2004-03-26 16:38:24.000000000 +0100
+++ src/dll.c   2004-04-11 13:29:47.000000000 +0200
@@ -295,13 +296,11 @@
 
     if(func == NULL) {
         char *mangledSig = mangleSignature(mb);
-        if(*mangledSig != '\0') {
-            char *fullyMangled = 
(char*)sysMalloc(strlen(mangled)+strlen(mangledSig)+3);
-            sprintf(fullyMangled, "%s__%s", mangled, mangledSig);
-
-            func = lookupLoadedDlls0(fullyMangled);
-            free(fullyMangled);
-        }
+        char *fullyMangled = 
(char*)sysMalloc(strlen(mangled)+strlen(mangledSig)+3);
+        sprintf(fullyMangled, "%s__%s", mangled, mangledSig);
+
+        func = lookupLoadedDlls0(fullyMangled);
+        free(fullyMangled);
         free(mangledSig);
     }
     free(mangled);

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]