[kaffe] CVS kaffe (robilad): cleaned up VM interfaces
Kaffe CVS
cvs-commits at kaffe.org
Sat Aug 19 15:02:46 PDT 2006
PatchSet 7387
Date: 2006/08/19 21:48:45
Author: robilad
Branch: HEAD
Tag: (none)
Log:
cleaned up VM interfaces
2006-08-19 Dalibor Topic <robilad at kaffe.org>
* libraries/javalib/vmspecific/gnu/classpath/jdwp/VMFrame.java,
libraries/javalib/vmspecific/gnu/classpath/jdwp/VMIdManager.java,
libraries/javalib/vmspecific/gnu/classpath/jdwp/VMMethod.java,
libraries/javalib/vmspecific/gnu/classpath/jdwp/VMVirtualMachine.java,
libraries/javalib/vmspecific/gnu/inet/finger/package.html,
libraries/javalib/vmspecific/gnu/inet/gopher/package.html,
libraries/javalib/vmspecific/gnu/inet/imap/package.html,
libraries/javalib/vmspecific/gnu/inet/nntp/package.html,
libraries/javalib/vmspecific/gnu/inet/pop3/package.html,
libraries/javalib/vmspecific/gnu/inet/smtp/package.html,
libraries/javalib/vmspecific/gnu/java/lang/VMInstrumentationImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMCompilationMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMRuntimeMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/lang/management/VMThreadMXBeanImpl.java,
libraries/javalib/vmspecific/gnu/java/nio/VMChannel.java,
libraries/javalib/vmspecific/gnu/java/nio/VMPipe.java,
libraries/javalib/vmspecific/gnu/java/nio/VMSelector.java,
libraries/javalib/vmspecific/java/io/VMFile.java,
libraries/javalib/vmspecific/java/io/VMObjectInputStream.java,
libraries/javalib/vmspecific/java/io/VMObjectStreamClass.java,
libraries/javalib/vmspecific/java/lang/VMClass.java,
libraries/javalib/vmspecific/java/lang/VMCompiler.java,
libraries/javalib/vmspecific/java/lang/VMDouble.java,
libraries/javalib/vmspecific/java/lang/VMFloat.java,
libraries/javalib/vmspecific/java/lang/VMMath.java,
libraries/javalib/vmspecific/java/lang/VMObject.java,
libraries/javalib/vmspecific/java/lang/management/VMManagementFactory.java,
libraries/javalib/vmspecific/java/lang/reflect/VMProxy.java,
libraries/javalib/vmspecific/java/net/VMNetworkInterface.java,
libraries/javalib/vmspecific/java/nio/VMDirectByteBuffer.java,
libraries/javalib/vmspecific/java/nio/channels/VMChannels.java:
Removed.
* libraries/javalib/vmspecific/Makefile.am: Removed unimplemented and duplicate
VM interfaces.
Members:
ChangeLog:1.4889->1.4890
libraries/javalib/vmspecific/Makefile.am:1.1->1.2
libraries/javalib/vmspecific/Makefile.in:1.1->1.2
libraries/javalib/vmspecific/gnu/classpath/jdwp/VMFrame.java:1.2->1.3(DEAD)
libraries/javalib/vmspecific/gnu/classpath/jdwp/VMIdManager.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/classpath/jdwp/VMMethod.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/classpath/jdwp/VMVirtualMachine.java:1.2->1.3(DEAD)
libraries/javalib/vmspecific/gnu/inet/finger/package.html:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/inet/gopher/package.html:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/inet/imap/package.html:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/inet/nntp/package.html:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/inet/pop3/package.html:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/inet/smtp/package.html:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/VMInstrumentationImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMCompilationMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMRuntimeMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/lang/management/VMThreadMXBeanImpl.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/nio/VMChannel.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/gnu/java/nio/VMPipe.java:1.2->1.3(DEAD)
libraries/javalib/vmspecific/gnu/java/nio/VMSelector.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/io/VMFile.java:1.2->1.3(DEAD)
libraries/javalib/vmspecific/java/io/VMObjectInputStream.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/io/VMObjectStreamClass.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/VMClass.java:1.3->1.4(DEAD)
libraries/javalib/vmspecific/java/lang/VMCompiler.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/VMDouble.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/VMFloat.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/VMMath.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/VMObject.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/management/VMManagementFactory.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/reflect/VMProxy.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/net/VMNetworkInterface.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/nio/VMDirectByteBuffer.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/nio/channels/VMChannels.java:1.1->1.2(DEAD)
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4889 kaffe/ChangeLog:1.4890
--- kaffe/ChangeLog:1.4889 Mon Aug 14 01:05:47 2006
+++ kaffe/ChangeLog Sat Aug 19 21:48:45 2006
@@ -1,3 +1,46 @@
+2006-08-19 Dalibor Topic <robilad at kaffe.org>
+
+ * libraries/javalib/vmspecific/gnu/classpath/jdwp/VMFrame.java,
+ libraries/javalib/vmspecific/gnu/classpath/jdwp/VMIdManager.java,
+ libraries/javalib/vmspecific/gnu/classpath/jdwp/VMMethod.java,
+ libraries/javalib/vmspecific/gnu/classpath/jdwp/VMVirtualMachine.java,
+ libraries/javalib/vmspecific/gnu/inet/finger/package.html,
+ libraries/javalib/vmspecific/gnu/inet/gopher/package.html,
+ libraries/javalib/vmspecific/gnu/inet/imap/package.html,
+ libraries/javalib/vmspecific/gnu/inet/nntp/package.html,
+ libraries/javalib/vmspecific/gnu/inet/pop3/package.html,
+ libraries/javalib/vmspecific/gnu/inet/smtp/package.html,
+ libraries/javalib/vmspecific/gnu/java/lang/VMInstrumentationImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMCompilationMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMRuntimeMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/lang/management/VMThreadMXBeanImpl.java,
+ libraries/javalib/vmspecific/gnu/java/nio/VMChannel.java,
+ libraries/javalib/vmspecific/gnu/java/nio/VMPipe.java,
+ libraries/javalib/vmspecific/gnu/java/nio/VMSelector.java,
+ libraries/javalib/vmspecific/java/io/VMFile.java,
+ libraries/javalib/vmspecific/java/io/VMObjectInputStream.java,
+ libraries/javalib/vmspecific/java/io/VMObjectStreamClass.java,
+ libraries/javalib/vmspecific/java/lang/VMClass.java,
+ libraries/javalib/vmspecific/java/lang/VMCompiler.java,
+ libraries/javalib/vmspecific/java/lang/VMDouble.java,
+ libraries/javalib/vmspecific/java/lang/VMFloat.java,
+ libraries/javalib/vmspecific/java/lang/VMMath.java,
+ libraries/javalib/vmspecific/java/lang/VMObject.java,
+ libraries/javalib/vmspecific/java/lang/management/VMManagementFactory.java,
+ libraries/javalib/vmspecific/java/lang/reflect/VMProxy.java,
+ libraries/javalib/vmspecific/java/net/VMNetworkInterface.java,
+ libraries/javalib/vmspecific/java/nio/VMDirectByteBuffer.java,
+ libraries/javalib/vmspecific/java/nio/channels/VMChannels.java:
+ Removed.
+
+ * libraries/javalib/vmspecific/Makefile.am: Removed unimplemented and duplicate
+ VM interfaces.
+
2006-08-13 Kurt Miller <kurt at intricatesoftware.com>
* configure.ac: Include sys/param.h when testing for
Index: kaffe/libraries/javalib/vmspecific/Makefile.am
diff -u kaffe/libraries/javalib/vmspecific/Makefile.am:1.1 kaffe/libraries/javalib/vmspecific/Makefile.am:1.2
--- kaffe/libraries/javalib/vmspecific/Makefile.am:1.1 Sun Aug 13 01:47:09 2006
+++ kaffe/libraries/javalib/vmspecific/Makefile.am Sat Aug 19 21:48:48 2006
@@ -29,40 +29,14 @@
vminterfacedir = $(FAKE)
dist_vminterface_JAVA = \
- gnu/classpath/jdwp/VMFrame.java \
- gnu/classpath/jdwp/VMIdManager.java \
- gnu/classpath/jdwp/VMMethod.java \
- gnu/classpath/jdwp/VMVirtualMachine.java \
gnu/classpath/VMStackWalker.java \
gnu/classpath/VMSystemProperties.java \
- gnu/java/lang/management/VMClassLoadingMXBeanImpl.java \
- gnu/java/lang/management/VMCompilationMXBeanImpl.java \
- gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java \
- gnu/java/lang/management/VMMemoryMXBeanImpl.java \
- gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java \
- gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java \
- gnu/java/lang/management/VMRuntimeMXBeanImpl.java \
- gnu/java/lang/management/VMThreadMXBeanImpl.java \
- gnu/java/lang/VMInstrumentationImpl.java \
gnu/java/net/InetAddressImpl.java \
gnu/java/net/PlainDatagramSocketImpl.java \
gnu/java/net/PlainSocketImpl.java \
gnu/java/net/SysInetAddressImpl.java \
- gnu/java/nio/VMChannel.java \
- gnu/java/nio/VMPipe.java \
- gnu/java/nio/VMSelector.java \
- java/io/VMFile.java \
- java/io/VMObjectInputStream.java \
- java/io/VMObjectStreamClass.java \
- java/lang/management/VMManagementFactory.java \
java/lang/Runtime.java \
- java/lang/VMClass.java \
java/lang/VMClassLoader.java \
- java/lang/VMCompiler.java \
- java/lang/VMDouble.java \
- java/lang/VMFloat.java \
- java/lang/VMMath.java \
- java/lang/VMObject.java \
java/lang/VMProcess.java \
java/lang/VMRuntime.java \
java/lang/VMString.java \
@@ -74,13 +48,9 @@
java/lang/reflect/Field.java \
java/lang/reflect/Method.java \
java/lang/reflect/VMArray.java \
- java/lang/reflect/VMProxy.java \
java/net/InetAddress.java \
java/net/VMInetAddress.java \
- java/net/VMNetworkInterface.java \
java/net/VMURLConnection.java \
- java/nio/channels/VMChannels.java \
- java/nio/VMDirectByteBuffer.java \
java/security/VMAccessController.java \
java/security/VMSecureRandom.java \
java/util/VMTimeZone.java \
Index: kaffe/libraries/javalib/vmspecific/Makefile.in
diff -u kaffe/libraries/javalib/vmspecific/Makefile.in:1.1 kaffe/libraries/javalib/vmspecific/Makefile.in:1.2
--- kaffe/libraries/javalib/vmspecific/Makefile.in:1.1 Sun Aug 13 01:47:09 2006
+++ kaffe/libraries/javalib/vmspecific/Makefile.in Sat Aug 19 21:48:48 2006
@@ -364,40 +364,14 @@
FAKE = fakeinstall
vminterfacedir = $(FAKE)
dist_vminterface_JAVA = \
- gnu/classpath/jdwp/VMFrame.java \
- gnu/classpath/jdwp/VMIdManager.java \
- gnu/classpath/jdwp/VMMethod.java \
- gnu/classpath/jdwp/VMVirtualMachine.java \
gnu/classpath/VMStackWalker.java \
gnu/classpath/VMSystemProperties.java \
- gnu/java/lang/management/VMClassLoadingMXBeanImpl.java \
- gnu/java/lang/management/VMCompilationMXBeanImpl.java \
- gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java \
- gnu/java/lang/management/VMMemoryMXBeanImpl.java \
- gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java \
- gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java \
- gnu/java/lang/management/VMRuntimeMXBeanImpl.java \
- gnu/java/lang/management/VMThreadMXBeanImpl.java \
- gnu/java/lang/VMInstrumentationImpl.java \
gnu/java/net/InetAddressImpl.java \
gnu/java/net/PlainDatagramSocketImpl.java \
gnu/java/net/PlainSocketImpl.java \
gnu/java/net/SysInetAddressImpl.java \
- gnu/java/nio/VMChannel.java \
- gnu/java/nio/VMPipe.java \
- gnu/java/nio/VMSelector.java \
- java/io/VMFile.java \
- java/io/VMObjectInputStream.java \
- java/io/VMObjectStreamClass.java \
- java/lang/management/VMManagementFactory.java \
java/lang/Runtime.java \
- java/lang/VMClass.java \
java/lang/VMClassLoader.java \
- java/lang/VMCompiler.java \
- java/lang/VMDouble.java \
- java/lang/VMFloat.java \
- java/lang/VMMath.java \
- java/lang/VMObject.java \
java/lang/VMProcess.java \
java/lang/VMRuntime.java \
java/lang/VMString.java \
@@ -409,13 +383,9 @@
java/lang/reflect/Field.java \
java/lang/reflect/Method.java \
java/lang/reflect/VMArray.java \
- java/lang/reflect/VMProxy.java \
java/net/InetAddress.java \
java/net/VMInetAddress.java \
- java/net/VMNetworkInterface.java \
java/net/VMURLConnection.java \
- java/nio/channels/VMChannels.java \
- java/nio/VMDirectByteBuffer.java \
java/security/VMAccessController.java \
java/security/VMSecureRandom.java \
java/util/VMTimeZone.java \
@@ -531,7 +501,7 @@
distdir: $(DISTFILES)
- $(mkdir_p) $(distdir)/gnu/classpath $(distdir)/gnu/classpath/jdwp $(distdir)/gnu/java/lang $(distdir)/gnu/java/lang/management $(distdir)/gnu/java/net $(distdir)/gnu/java/nio $(distdir)/java/io $(distdir)/java/lang $(distdir)/java/lang/management $(distdir)/java/lang/ref $(distdir)/java/lang/reflect $(distdir)/java/net $(distdir)/java/nio $(distdir)/java/nio/channels $(distdir)/java/security $(distdir)/java/util $(distdir)/org/kaffe/jar $(distdir)/org/kaffe/management $(distdir)/org/kaffe/security $(distdir)/org/kaffe/security/provider $(distdir)/org/kaffe/util
+ $(mkdir_p) $(distdir)/gnu/classpath $(distdir)/gnu/java/net $(distdir)/java/lang $(distdir)/java/lang/ref $(distdir)/java/lang/reflect $(distdir)/java/net $(distdir)/java/security $(distdir)/java/util $(distdir)/org/kaffe/jar $(distdir)/org/kaffe/management $(distdir)/org/kaffe/security $(distdir)/org/kaffe/security/provider $(distdir)/org/kaffe/util
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
===================================================================
Checking out kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/VMFrame.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/Attic/VMFrame.java,v
VERS: 1.2
***************
--- kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/VMFrame.java Sat Aug 19 22:02:38 2006
+++ /dev/null Sun Aug 4 19:57:58 2002
@@ -1,106 +0,0 @@
-/* VMFrame.java -- Reference implementation of VM hooks for JDWP Frame access.
- Copyright (C) 2005, 2006 Free Software Foundation
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.jdwp;
-
-import gnu.classpath.jdwp.util.Location;
-
-/**
- * Reference implementation of VM hooks for JDWP Frame access.
- *
- * @author aluchko
- */
-
-public class VMFrame
-{
- /**
- * Returns the size of a frame ID over JDWP
- */
- public static final int SIZE = 8;
-
- // The object this frame resides in
- private Object obj;
-
- // The current location of this frame
- private Location loc;
-
- // id of this frame
- private long id;
-
- /**
- * Gets the current location of the frame.
- */
- public Location getLocation()
- {
- return loc;
- }
-
- /**
- * Returns the value of the variable in the given slot.
- *
- * @param slot the slot containing the variable
- */
- public native Object getValue(int slot);
-
- /**
- * Assigns the given variable to the given value.
- * @param slot The slot which contains the variable
- * @param value The value to assign the variable to
- */
- public native void setValue(int slot, Object value);
-
- /**
- * Get the object which is represented by 'this' in the context of the frame,
- * returns null if the method is native or static.
- */
- public Object getObject()
- {
- return obj;
- }
-
- /**
- * Get the frameID
- * @return an id which is unique within the scope of the VM
- */
- public long getId()
- {
- return id;
- }
-
-}
===================================================================
Checking out kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/VMIdManager.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/Attic/VMIdManager.java,v
VERS: 1.1
***************
--- kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/VMIdManager.java Sat Aug 19 22:02:39 2006
+++ /dev/null Sun Aug 4 19:57:58 2002
@@ -1,427 +0,0 @@
-/* VMIdManager.java -- A reference/example implementation of a manager for
- JDWP object/reference type IDs
-
- Copyright (C) 2005 Free Software Foundation
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.jdwp;
-
-import gnu.classpath.jdwp.exception.InvalidClassException;
-import gnu.classpath.jdwp.exception.InvalidObjectException;
-import gnu.classpath.jdwp.id.*;
-
-import java.lang.ref.Reference;
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.SoftReference;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-/**
- * This class manages objects and referencetypes that are reported
- * to the debugger. All objects and referencetypes reported to the
- * debugger should go through this manager.
- *
- * A brief summary of what an <code>IdManager</code> must provide:
- *
- * <code>
- * public ObjectId getObjectId (Object theObject);
- * public ObjectId get (long id);
- * public ObjectId readObjectId (ByteBuffer bb);
- * public ReferenceTypeId getReferenceTypeId (Class clazz);
- * public ReferenceTypeId getReferenceType (long id);
- * public ReferenceTypeId readReferenceTypeId (ByteBuffer bb);
- * </code>
- *
- * See the javadoc on these methods later in this file for more
- * information on these functions.
- *
- * <b>NOTE:</b> All IDs handled by the ID manager (all object and reference
- * type IDs) are assumed to be of type <code>long</code>.
- *
- * @author Keith Seitz (keiths at redhat.com)
- */
-public class VMIdManager
-{
- // This factory generates ids for objects and types that may
- // be sent to a debugger.
- private static class IdFactory
- {
- // ID of last object / referencetype
- private static Object _idLock = new Object ();
- private static Object _ridLock = new Object ();
- private static long _lastId = 0;
- private static long _lastRid = 0;
-
- // A list of all ID types
- private static HashMap _idList = new HashMap ();
-
- // Initialize the id list with known types
- static
- {
- // ObjectId and ArrayId are special cases. See newObjectId.
- _idList.put (ClassLoaderId.typeClass, ClassLoaderId.class);
- _idList.put (ClassObjectId.typeClass, ClassObjectId.class);
- //_idList.put (FieldId.typeClass, FieldId.class);
- //_idList.put (FrameId.typeClass, FrameId.class);
- //_idList.put (MethodId.typeClass, MethodId.class);
- _idList.put (StringId.typeClass, StringId.class);
- _idList.put (ThreadId.typeClass, ThreadId.class);
- _idList.put (ThreadGroupId.typeClass, ThreadGroupId.class);
- }
-
- /**
- * Returns a new id for the given object
- *
- * @param object the object for which an id is desired
- * @returns a suitable object id
- */
- public static ObjectId newObjectId (SoftReference obj)
- {
- ObjectId id = null;
- Object object = obj.get ();
-
- // Special case: arrays
- if (object.getClass ().isArray ())
- id = new ArrayId ();
- else
- {
- // Loop through all classes until we hit baseclass
- Class myClass;
- for (myClass = object.getClass (); myClass != null;
- myClass = myClass.getSuperclass ())
- {
- Class clz = (Class) _idList.get (myClass);
- if (clz != null)
- {
- try
- {
- id = (ObjectId) clz.newInstance ();
- synchronized (_idLock)
- {
- id.setId (++_lastId);
- }
- id.setReference (obj);
- return id;
- }
- catch (InstantiationException ie)
- {
- // This really should not happen
- throw new RuntimeException ("cannot create new ID", ie);
- }
- catch (IllegalAccessException iae)
- {
- // This really should not happen
- throw new RuntimeException ("illegal access of ID", iae);
- }
- }
- }
-
- /* getSuperclass returned null and no matching ID type found.
- So it must derive from Object. */
- id = new ObjectId ();
- }
-
- synchronized (_idLock)
- {
- id.setId (++_lastId);
- }
- id.setReference (obj);
- return id;
- }
-
- /**
- * Returns a new reference type id for the given class
- *
- * @param clazz the <code>Class</code> for which an id is desired
- * @returns a suitable reference type id or null when the
- * reference is cleared.
- */
- public static ReferenceTypeId newReferenceTypeId (SoftReference ref)
- {
- ReferenceTypeId id;
- Class clazz = (Class) ref.get ();
- if (clazz == null)
- return null;
-
- if (clazz.isArray ())
- id = new ArrayReferenceTypeId ();
- else if (clazz.isInterface ())
- id = new InterfaceReferenceTypeId ();
- else
- id = new ClassReferenceTypeId ();
- synchronized (_ridLock)
- {
- id.setId (++_lastRid);
- }
- return id;
- }
- }
-
- /**
- * This class is a SoftReferenceIdentity type that is used by
- * the ID manager.
- */
- class ReferenceKey extends SoftReference
- {
- // Hash code of referent
- private int _hash;
-
- /**
- * Constructs a new <code>ReferenceKey</code> object
- * with the given referent.
- *
- * <p>This constructor should only be used for object lookups
- * by the backend.
- *
- * @param referent the object to reference
- */
- public ReferenceKey (Object referent)
- {
- super (referent);
- _hash = referent.hashCode ();
- }
-
- /**
- * Constructs a new <code>ReferenceKey</code> object
- * with the given referent and reference queue.
- *
- * <p>The JDWP back-end stores a <code>ReferenceKey</code>
- * with its corresponding <code>JdwpId</code>. This constructor
- * is used by the back-end when adding new IDs to be managed.
- *
- * @param referent the object to reference
- * @param queue the queue to which to report garbage collections
- */
- public ReferenceKey (Object referent, ReferenceQueue queue)
- {
- super (referent, queue);
- _hash = referent.hashCode ();
- }
-
- /**
- * Returns the hash code of the referent.
- * This seems hacky, but is required in order to use this class
- * as a hash table key.
- *
- * @returns the hash code of the referent
- */
- public int hashCode ()
- {
- return _hash;
- }
-
- /**
- * Comparator for keys
- *
- * This method can be used in two ways:
- *
- * <ol>
- * <li>For table lookups, where we want to compare referents</li>
- * <li>For clearing GCd objects, where we want to compare the actual
- * key object (not the referent)</li>
- * </ol>
- */
- public boolean equals (Object obj)
- {
- if (obj instanceof ReferenceKey)
- {
- ReferenceKey ref = (ReferenceKey) obj;
-
- /* First check if the two references are the same.
- If they are, that means we must be clearing GCd objects. */
- if (this == obj)
- return true;
-
- return (ref.get () == get ());
- }
-
- return false;
- }
- }
-
- // instance of VMIdManager
- private static VMIdManager _idm = new VMIdManager ();
-
- // A reference queue for our objects
- private ReferenceQueue _refQueue;
-
- // Mapping of objects (ReferenceKey) to IDs (ObjectId)
- private Hashtable _oidTable;
-
- // Mapping of ID numbers (Long) to IDs (ObjectId)
- private Hashtable _idTable;
-
- /* Mapping of class (ReferenceKey) to IDs (ReferenceTypeId) for reference
- types. Unlike other types, reference id types are NEVER released. */
- private Hashtable _classTable;
-
- // Mapping of ID numbers (Long) to reference type IDs (ReferenceTypeId)
- private Hashtable _ridTable;
-
- /**
- * Gets the instance of VMIdManager, constructing a new one
- * if none currently exists.
- */
- public static VMIdManager getDefault ()
- {
- return _idm;
- }
-
- // Constructs a new <code>IdManager</code>
- private VMIdManager ()
- {
- _refQueue = new ReferenceQueue ();
- _oidTable = new Hashtable (50);
- _idTable = new Hashtable (50);
- _classTable = new Hashtable (20);
- _ridTable = new Hashtable (20);
- }
-
- // Updates the object ID table, removing IDs whose objects have
- // been garbage collected.
- private void _update ()
- {
- Reference ref;
- while ((ref = _refQueue.poll ()) != null)
- {
- ObjectId id = (ObjectId) _oidTable.get (ref);
- _oidTable.remove (ref);
- _idTable.remove (new Long (id.getId ()));
- }
- }
-
- /**
- * Returns an id for the given object, adding it
- * if it does not have an id.
- *
- * @param theObject the object to get an ID/add
- * @returns the ID of the object
- */
- public ObjectId getObjectId (Object theObject)
- {
- ReferenceKey ref = new ReferenceKey (theObject, _refQueue);
- ObjectId id = (ObjectId) _oidTable.get (ref);
- if (id == null)
- {
- // update the tables -- this is an arbitrary place to put this
- _update ();
-
- // Object not found. Make new id for it
- id = IdFactory.newObjectId (ref);
- _oidTable.put (ref, id);
- _idTable.put (new Long (id.getId ()), id);
- }
-
- return id;
- }
-
- /**
- * Returns the <code>JdwpId</code> for a given ID. Unlike
- * <code>getId</code>, it throws an exception if the ID is not
- * known.
- *
- * @param id the numerical ID of the desired <code>JdwpId</code>
- * @throws InvalidObjectException if the ID is not found
- */
- public ObjectId get (long id)
- throws InvalidObjectException
- {
- ObjectId oid = (ObjectId) _idTable.get (new Long (id));
- if (oid == null)
- throw new InvalidObjectException (id);
-
- return oid;
- }
-
- public ObjectId readObjectId (ByteBuffer bb)
- throws InvalidObjectException
- {
- long id = bb.getLong ();
- return get (id);
- }
-
- /**
- * Gets the reference type id for the given class, creating
- * a new one if it does not already have an id
- *
- * @param clazz the class for which to get an ID
- * @returns the ID of the class
- */
- public ReferenceTypeId getReferenceTypeId (Class clazz)
- {
- ReferenceKey ref = new ReferenceKey (clazz);
- ReferenceTypeId id = (ReferenceTypeId)_classTable.get (ref);
- if (id == null)
- {
- // Object not found. Make new id for it
- id = IdFactory.newReferenceTypeId (ref);
- _classTable.put (ref, id);
- _ridTable.put (new Long (id.getId ()), id);
- }
-
- return id;
- }
-
- /**
- * Returns the <code>ReferenceTypeId</code> for a given ID. Unlike
- * <code>getReferenceTypeId</code>, it throws an exception if the ID is not
- * known.
- *
- * @param id the numerical ID of the desired reference type
- * @throws InvalidClassException if the ID is not found
- */
- public ReferenceTypeId getReferenceType (long id)
- throws InvalidClassException
- {
- ReferenceTypeId rid = (ReferenceTypeId) _ridTable.get (new Long (id));
- if (rid == null)
- throw new InvalidClassException (id);
-
- return rid;
- }
-
- public ReferenceTypeId readReferenceTypeId (ByteBuffer bb)
- throws InvalidClassException
- {
- long id = bb.getLong ();
- return getReferenceType (id);
- }
-}
===================================================================
Checking out kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/VMMethod.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/Attic/VMMethod.java,v
VERS: 1.1
***************
--- kaffe/libraries/javalib/vmspecific/gnu/classpath/jdwp/VMMethod.java Sat Aug 19 22:02:39 2006
+++ /dev/null Sun Aug 4 19:57:58 2002
@@ -1,178 +0,0 @@
-/* VMMethod.java -- a method in a virtual machine
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.classpath.jdwp;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-import gnu.classpath.jdwp.exception.JdwpException;
-import gnu.classpath.jdwp.util.LineTable;
-import gnu.classpath.jdwp.util.VariableTable;
-
-/**
- * This class is really an amalgamation of two classes: one class
- * represents a virtual machine method and the other represents
- * the JDWP back-end's ID for the method.
- *
- * @author Keith Seitz (keiths at redhat.com)
- */
-public class VMMethod
-{
- /**
- * Returns the size of a JDWP method ID
- * @see gnu.classpath.jdwp.id.JdwpId#SIZE
- */
- public static final int SIZE = 8;
-
- // The class in which this method is declared
- private Class _class;
-
- // The method's ID
- private long _methodId;
-
- /**
- * Constructs a new VMMethod object. This constructor is protected
- * so that only the factory methods of VMVirtualMachine can be used
- * to create VMMethods.
- *
- * @param klass the method's containing class
- * @param id method identifier, e.g., jmethodID
- * @see gnu.classpath.jdwp.VMVirtualMachine#getAllClassMethods
- * @see gnu.classpath.jdwp.VMVirtualMachine#getClassMethod
- */
- protected VMMethod(Class klass, long id)
- {
- _class = klass;
- _methodId = id;
- }
-
- /**
- * Returns the internal method ID for this method
- */
- public long getId()
- {
- return _methodId;
- }
-
- /**
- * Returns the method's declaring class
- */
- public Class getDeclaringClass()
- {
- return _class;
- }
-
- /**
- * Returns the name of this method
- */
- public native String getName();
-
- /**
- * Returns the signature of this method
- */
- public native String getSignature();
-
- /**
- * Returns the method's modifier flags
- */
- public native int getModifiers();
-
- /**
- * "Returns line number information for the method, if present. The line
- * table maps source line numbers to the initial code index of the line.
- * The line table is ordered by code index (from lowest to highest). The
- * line number information is constant unless a new class definition is
- * installed using RedefineClasses."
- *
- * @return the line table
- * @throws JdwpException
- */
- public native LineTable getLineTable()
- throws JdwpException;
-
- /**
- * "Returns variable information for the method. The variable table
- * includes arguments and locals declared within the method. For instance
- * methods, the "this" reference is included in the table. Also, synthetic
- * variables may be present."
- *
- * @return the variable table
- * @throws JdwpException
- */
- public native VariableTable getVariableTable()
- throws JdwpException;
-
- /**
- * Returns a string representation of this method (not
- * required but nice for debugging).
- */
- public String toString()
- {
- return getDeclaringClass().getName() + "." + getName();
- }
-
- /**
- * Writes the method's ID to the output stream
- *
- * @param ostream the output stream to which to write
- * @throws IOException for any errors writing to the stream
- * @see gnu.classpath.jdwp.id.JdwpId#write
- */
- public void writeId(DataOutputStream ostream)
- throws IOException
- {
- ostream.writeLong(getId());
- }
-
- /**
- * Returns a VMMethod from the ID in the byte buffer
- *
- * @param klass the method's declaring class
- * @param bb a ByteBuffer containing the method's ID
- * @throws JdwpException for any errors creating the method
- * @throws IOException for any errors reading from the buffer
- */
- public static VMMethod readId(Class klass, ByteBuffer bb)
*** Patch too long, truncated ***
More information about the kaffe
mailing list