This commit is contained in:
jfrijters 2005-03-11 13:56:44 +00:00
Родитель 66240faf32
Коммит 3d1824e144
5 изменённых файлов: 261 добавлений и 94 удалений

Просмотреть файл

@ -1,29 +1,28 @@
ikvm/internal/LibraryVMInterface.java
ikvm/lang/CIL.java
ikvm/lang/ByteArrayHack.java
gnu/classpath/Configuration.java
gnu/classpath/RawData.java
gnu/classpath/VMStackWalker.java
gnu/classpath/VMSystemProperties.java
gnu/java/nio/channels/FileChannelImpl.java
gnu/java/net/protocol/ikvmres/Handler.java
gnu/java/net/PlainSocketImpl.java
gnu/java/net/PlainDatagramSocketImpl.java
gnu/java/net/PlainSocketImpl.java
gnu/java/net/protocol/ikvmres/Handler.java
gnu/java/nio/channels/FileChannelImpl.java
ikvm/internal/LibraryVMInterface.java
ikvm/lang/CIL.java
java/io/VMFile.java
java/lang/LibraryVMInterfaceImpl.java
java/lang/VMThread.java
java/lang/VMClass.java
java/lang/VMDouble.java
java/lang/VMFloat.java
java/lang/VMSystem.java
java/lang/ExceptionHelper.java
java/lang/StringHelper.java
java/lang/VMClassLoader.java
java/lang/VMRuntime.java
java/lang/LibraryVMInterfaceImpl.java
java/lang/ref/Reference.java
java/lang/reflect/Constructor.java
java/lang/reflect/Method.java
java/lang/reflect/Field.java
java/lang/reflect/Method.java
java/lang/StringHelper.java
java/lang/VMClass.java
java/lang/VMClassLoader.java
java/lang/VMDouble.java
java/lang/VMFloat.java
java/lang/VMRuntime.java
java/lang/VMSystem.java
java/lang/VMThread.java
java/nio/channels/VMChannels.java
java/nio/VMDirectByteBuffer.java
java/security/VMAccessController.java
@ -215,6 +214,8 @@ sun/misc/Ref.java
../../classpath/gnu/classpath/ServiceFactory.java
../../classpath/gnu/classpath/ServiceProviderLoadingAction.java
../../classpath/gnu/classpath/SystemProperties.java
../../classpath/gnu/CORBA/primitiveArrayTypeCode.java
../../classpath/gnu/CORBA/primitiveTypeCode.java
../../classpath/gnu/java/awt/BitMaskExtent.java
../../classpath/gnu/java/awt/BitwiseXORComposite.java
../../classpath/gnu/java/awt/Buffers.java
@ -352,10 +353,6 @@ sun/misc/Ref.java
../../classpath/gnu/java/lang/ClassHelper.java
../../classpath/gnu/java/lang/MainThread.java
../../classpath/gnu/java/lang/reflect/TypeSignature.java
../../classpath/gnu/java/locale/Calendar.java
../../classpath/gnu/java/locale/Calendar_de.java
../../classpath/gnu/java/locale/Calendar_en.java
../../classpath/gnu/java/locale/Calendar_nl.java
../../classpath/gnu/java/locale/LocaleHelper.java
../../classpath/gnu/java/locale/LocaleInformation.java
../../classpath/gnu/java/locale/LocaleInformation_aa.java
@ -680,6 +677,7 @@ sun/misc/Ref.java
../../classpath/gnu/java/net/protocol/http/ResponseBodyReader.java
../../classpath/gnu/java/net/protocol/http/ResponseHeaderHandler.java
../../classpath/gnu/java/net/protocol/http/SimpleCookieManager.java
../../classpath/gnu/java/net/protocol/https/Handler.java
../../classpath/gnu/java/net/protocol/jar/Connection.java
../../classpath/gnu/java/net/protocol/jar/Handler.java
../../classpath/gnu/java/net/URLParseError.java
@ -827,6 +825,29 @@ sun/misc/Ref.java
../../classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java
../../classpath/gnu/javax/rmi/CORBA/ValueHandlerImpl.java
../../classpath/gnu/javax/rmi/PortableServer.java
../../classpath/gnu/javax/swing/text/html/parser/gnuDTD.java
../../classpath/gnu/javax/swing/text/html/parser/HTML_401F.java
../../classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java
../../classpath/gnu/javax/swing/text/html/parser/htmlValidator.java
../../classpath/gnu/javax/swing/text/html/parser/models/list.java
../../classpath/gnu/javax/swing/text/html/parser/models/node.java
../../classpath/gnu/javax/swing/text/html/parser/models/noTagModel.java
../../classpath/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.java
../../classpath/gnu/javax/swing/text/html/parser/models/TableRowContentModel.java
../../classpath/gnu/javax/swing/text/html/parser/models/transformer.java
../../classpath/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/Buffer.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/Constants.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/Location.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/node.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/ParseException.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/pattern.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/Queue.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java
../../classpath/gnu/javax/swing/text/html/parser/support/low/Token.java
../../classpath/gnu/javax/swing/text/html/parser/support/parameterDefaulter.java
../../classpath/gnu/javax/swing/text/html/parser/support/Parser.java
../../classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java
../../classpath/gnu/regexp/CharIndexed.java
../../classpath/gnu/regexp/CharIndexedCharArray.java
../../classpath/gnu/regexp/CharIndexedInputStream.java
@ -889,6 +910,17 @@ sun/misc/Ref.java
../../classpath/gnu/xml/dom/DomXPathResult.java
../../classpath/gnu/xml/dom/DTDAttributeTypeInfo.java
../../classpath/gnu/xml/dom/DTDElementTypeInfo.java
../../classpath/gnu/xml/dom/html2/DomHTMLAnchorElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLAppletElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLAreaElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLBaseElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLBaseFontElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLBodyElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLBRElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java
../../classpath/gnu/xml/dom/html2/DomHTMLCollection.java
../../classpath/gnu/xml/dom/html2/DomHTMLDocument.java
../../classpath/gnu/xml/dom/html2/DomHTMLElement.java
../../classpath/gnu/xml/dom/ImplementationList.java
../../classpath/gnu/xml/dom/ImplementationSource.java
../../classpath/gnu/xml/dom/JAXPFactory.java
@ -2811,6 +2843,7 @@ sun/misc/Ref.java
../../classpath/javax/swing/text/AttributeSet.java
../../classpath/javax/swing/text/BadLocationException.java
../../classpath/javax/swing/text/Caret.java
../../classpath/javax/swing/text/ChangedCharSetException.java
../../classpath/javax/swing/text/ComponentView.java
../../classpath/javax/swing/text/DefaultCaret.java
../../classpath/javax/swing/text/DefaultEditorKit.java
@ -2824,7 +2857,18 @@ sun/misc/Ref.java
../../classpath/javax/swing/text/GapContent.java
../../classpath/javax/swing/text/Highlighter.java
../../classpath/javax/swing/text/html/HTML.java
../../classpath/javax/swing/text/html/HTMLEditorKit.java
../../classpath/javax/swing/text/html/HTMLFrameHyperlinkEvent.java
../../classpath/javax/swing/text/html/parser/AttributeList.java
../../classpath/javax/swing/text/html/parser/ContentModel.java
../../classpath/javax/swing/text/html/parser/DocumentParser.java
../../classpath/javax/swing/text/html/parser/DTD.java
../../classpath/javax/swing/text/html/parser/DTDConstants.java
../../classpath/javax/swing/text/html/parser/Element.java
../../classpath/javax/swing/text/html/parser/Entity.java
../../classpath/javax/swing/text/html/parser/Parser.java
../../classpath/javax/swing/text/html/parser/ParserDelegator.java
../../classpath/javax/swing/text/html/parser/TagElement.java
../../classpath/javax/swing/text/JTextComponent.java
../../classpath/javax/swing/text/Keymap.java
../../classpath/javax/swing/text/LayeredHighlighter.java
@ -2834,6 +2878,13 @@ sun/misc/Ref.java
../../classpath/javax/swing/text/PlainDocument.java
../../classpath/javax/swing/text/PlainView.java
../../classpath/javax/swing/text/Position.java
../../classpath/javax/swing/text/rtf/ControlWordToken.java
../../classpath/javax/swing/text/rtf/RTFEditorKit.java
../../classpath/javax/swing/text/rtf/RTFParseException.java
../../classpath/javax/swing/text/rtf/RTFParser.java
../../classpath/javax/swing/text/rtf/RTFScanner.java
../../classpath/javax/swing/text/rtf/TextToken.java
../../classpath/javax/swing/text/rtf/Token.java
../../classpath/javax/swing/text/Segment.java
../../classpath/javax/swing/text/SimpleAttributeSet.java
../../classpath/javax/swing/text/StringContent.java
@ -2961,6 +3012,83 @@ sun/misc/Ref.java
../../classpath/org/ietf/jgss/GSSName.java
../../classpath/org/ietf/jgss/MessageProp.java
../../classpath/org/ietf/jgss/Oid.java
../../classpath/org/omg/CORBA/Any.java
../../classpath/org/omg/CORBA/AnyHolder.java
../../classpath/org/omg/CORBA/ARG_IN.java
../../classpath/org/omg/CORBA/ARG_INOUT.java
../../classpath/org/omg/CORBA/ARG_OUT.java
../../classpath/org/omg/CORBA/BAD_CONTEXT.java
../../classpath/org/omg/CORBA/BAD_INV_ORDER.java
../../classpath/org/omg/CORBA/BAD_OPERATION.java
../../classpath/org/omg/CORBA/BAD_OPERATION.java
../../classpath/org/omg/CORBA/BAD_PARAM.java
../../classpath/org/omg/CORBA/BAD_TYPECODE.java
../../classpath/org/omg/CORBA/BooleanHolder.java
../../classpath/org/omg/CORBA/BooleanSeqHolder.java
../../classpath/org/omg/CORBA/Bounds.java
../../classpath/org/omg/CORBA/ByteHolder.java
../../classpath/org/omg/CORBA/CharHolder.java
../../classpath/org/omg/CORBA/CharSeqHolder.java
../../classpath/org/omg/CORBA/COMM_FAILURE.java
../../classpath/org/omg/CORBA/CompletionStatus.java
../../classpath/org/omg/CORBA/Context.java
../../classpath/org/omg/CORBA/ContextList.java
../../classpath/org/omg/CORBA/DATA_CONVERSION.java
../../classpath/org/omg/CORBA/DoubleHolder.java
../../classpath/org/omg/CORBA/DoubleSeqHolder.java
../../classpath/org/omg/CORBA/FixedHolder.java
../../classpath/org/omg/CORBA/FloatHolder.java
../../classpath/org/omg/CORBA/FloatSeqHolder.java
../../classpath/org/omg/CORBA/FREE_MEM.java
../../classpath/org/omg/CORBA/IDLEntity.java
../../classpath/org/omg/CORBA/IMP_LIMIT.java
../../classpath/org/omg/CORBA/INITIALIZE.java
../../classpath/org/omg/CORBA/INTERNAL.java
../../classpath/org/omg/CORBA/INTF_REPOS.java
../../classpath/org/omg/CORBA/IntHolder.java
../../classpath/org/omg/CORBA/INV_FLAG.java
../../classpath/org/omg/CORBA/INV_IDENT.java
../../classpath/org/omg/CORBA/INV_OBJREF.java
../../classpath/org/omg/CORBA/INV_POLICY.java
../../classpath/org/omg/CORBA/INVALID_TRANSACTION.java
../../classpath/org/omg/CORBA/LongHolder.java
../../classpath/org/omg/CORBA/LongLongSeqHolder.java
../../classpath/org/omg/CORBA/LongSeqHolder.java
../../classpath/org/omg/CORBA/MARSHAL.java
../../classpath/org/omg/CORBA/NamedValue.java
../../classpath/org/omg/CORBA/NO_IMPLEMENT.java
../../classpath/org/omg/CORBA/NO_MEMORY.java
../../classpath/org/omg/CORBA/NO_PERMISSION.java
../../classpath/org/omg/CORBA/NO_RESPONSE.java
../../classpath/org/omg/CORBA/OBJ_ADAPTER.java
../../classpath/org/omg/CORBA/Object.java
../../classpath/org/omg/CORBA/OBJECT_NOT_EXIST.java
../../classpath/org/omg/CORBA/OctetSeqHolder.java
../../classpath/org/omg/CORBA/ORB.java
../../classpath/org/omg/CORBA/PERSIST_STORE.java
../../classpath/org/omg/CORBA/portable/IDLEntity.java
../../classpath/org/omg/CORBA/portable/InputStream.java
../../classpath/org/omg/CORBA/portable/OutputStream.java
../../classpath/org/omg/CORBA/portable/Streamable.java
../../classpath/org/omg/CORBA/Principal.java
../../classpath/org/omg/CORBA/ShortHolder.java
../../classpath/org/omg/CORBA/ShortSeqHolder.java
../../classpath/org/omg/CORBA/StringHolder.java
../../classpath/org/omg/CORBA/SystemException.java
../../classpath/org/omg/CORBA/TCKind.java
../../classpath/org/omg/CORBA/TRANSACTION_REQUIRED.java
../../classpath/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java
../../classpath/org/omg/CORBA/TRANSIENT.java
../../classpath/org/omg/CORBA/TypeCode.java
../../classpath/org/omg/CORBA/TypeCodeHolder.java
../../classpath/org/omg/CORBA/TypeCodePackage/BadKind.java
../../classpath/org/omg/CORBA/TypeCodePackage/Bounds.java
../../classpath/org/omg/CORBA/ULongLongSeqHolder.java
../../classpath/org/omg/CORBA/ULongSeqHolder.java
../../classpath/org/omg/CORBA/UNKNOWN.java
../../classpath/org/omg/CORBA/UserException.java
../../classpath/org/omg/CORBA/UShortSeqHolder.java
../../classpath/org/omg/CORBA/WCharSeqHolder.java
../../classpath/vm/reference/gnu/java/nio/VMPipe.java
../../classpath/vm/reference/gnu/java/nio/VMSelector.java
../../classpath/vm/reference/java/io/VMObjectStreamClass.java

Просмотреть файл

@ -1,5 +1,5 @@
/* FileChannelImpl.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -238,10 +238,6 @@ public final class FileChannelImpl extends FileChannel
if(stream == null)
throw new IOException("Invalid FileChannelImpl");
if (size < 0)
throw new IllegalArgumentException("Length cannot be less than zero " +
size);
try
{
if(false) throw new cli.System.IO.IOException();
@ -521,7 +517,7 @@ public final class FileChannelImpl extends FileChannel
public MappedByteBuffer mapImpl (char mode, long position, int size) throws IOException
{
// TODO
throw new Error("not implemented");
throw new IOException("not implemented");
}
public MappedByteBuffer map (FileChannel.MapMode mode,
@ -581,7 +577,30 @@ public final class FileChannelImpl extends FileChannel
private static native boolean flush(cli.System.IO.FileStream fs);
public long transferTo (long position, long count, WritableByteChannel target)
// like transferTo, but with a count of less than 2Gbytes
private int smallTransferTo (long position, int count,
WritableByteChannel target)
throws IOException
{
ByteBuffer buffer;
try
{
// Try to use a mapped buffer if we can. If this fails for
// any reason we'll fall back to using a ByteBuffer.
buffer = map (MapMode.READ_ONLY, position, count);
}
catch (IOException e)
{
buffer = ByteBuffer.allocate (count);
read (buffer, position);
buffer.flip();
}
return target.write (buffer);
}
public long transferTo (long position, long count,
WritableByteChannel target)
throws IOException
{
if (position < 0
@ -594,14 +613,57 @@ public final class FileChannelImpl extends FileChannel
if ((mode & READ) == 0)
throw new NonReadableChannelException ();
// XXX: count needs to be casted from long to int. Dataloss ?
ByteBuffer buffer = ByteBuffer.allocate ((int) count);
read (buffer, position);
buffer.flip();
return target.write (buffer);
final int pageSize = 65536;
long total = 0;
while (count > 0)
{
int transferred
= smallTransferTo (position, (int)Math.min (count, pageSize),
target);
if (transferred < 0)
break;
total += transferred;
position += transferred;
count -= transferred;
}
public long transferFrom (ReadableByteChannel src, long position, long count)
return total;
}
// like transferFrom, but with a count of less than 2Gbytes
private int smallTransferFrom (ReadableByteChannel src, long position,
int count)
throws IOException
{
ByteBuffer buffer = null;
if (src instanceof FileChannel)
{
try
{
// Try to use a mapped buffer if we can. If this fails
// for any reason we'll fall back to using a ByteBuffer.
buffer = ((FileChannel)src).map (MapMode.READ_ONLY, position,
count);
}
catch (IOException e)
{
}
}
if (buffer == null)
{
buffer = ByteBuffer.allocate ((int) count);
src.read (buffer);
buffer.flip();
}
return write (buffer, position);
}
public long transferFrom (ReadableByteChannel src, long position,
long count)
throws IOException
{
if (position < 0
@ -614,11 +676,21 @@ public final class FileChannelImpl extends FileChannel
if ((mode & WRITE) == 0)
throw new NonWritableChannelException ();
// XXX: count needs to be casted from long to int. Dataloss ?
ByteBuffer buffer = ByteBuffer.allocate ((int) count);
src.read (buffer);
buffer.flip();
return write (buffer, position);
final int pageSize = 65536;
long total = 0;
while (count > 0)
{
int transferred = smallTransferFrom (src, position,
(int)Math.min (count, pageSize));
if (transferred < 0)
break;
total += transferred;
position += transferred;
count -= transferred;
}
return total;
}
public FileLock tryLock (long position, long size, boolean shared)

Просмотреть файл

@ -1,35 +0,0 @@
/*
Copyright (C) 2003, 2004, 2005 Jeroen Frijters
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Jeroen Frijters
jeroen@frijters.net
*/
package ikvm.lang;
/** @deprecated */
public final class ByteArrayHack
{
private ByteArrayHack() {}
public static byte[] cast(byte[] b)
{
return b;
}
}

Просмотреть файл

@ -1,5 +1,5 @@
/*
Copyright (C) 2002, 2003, 2004 Jeroen Frijters
Copyright (C) 2002, 2003, 2004, 2005 Jeroen Frijters
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@ -178,7 +178,7 @@ public class Starter
}
else if(args[i] == "-version")
{
Console.WriteLine("CLR version: {0}", Environment.Version);
Console.WriteLine("CLR version: {0} ({1} bit)", Environment.Version, IntPtr.Size * 8);
foreach(Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
{
Console.WriteLine("{0}: {1}", asm.GetName().Name, asm.GetName().Version);

Просмотреть файл

@ -207,7 +207,9 @@ namespace IKVM.Runtime
public static object DynamicCast(object obj, RuntimeTypeHandle type, string clazz)
{
Profiler.Count("DynamicCast");
if(!DynamicInstanceOf(obj, type, clazz))
// NOTE it's important that we don't try to load the class if obj == null
// (to be compatible with Sun)
if(obj != null && !DynamicInstanceOf(obj, type, clazz))
{
throw JavaException.ClassCastException(ClassLoaderWrapper.GetWrapperFromType(obj.GetType()).Name);
}