On Fri, 2005-08-12 at 14:11 -0400, Aaron Luchko wrote:
> This class defines an interface to the VM to represent a Frame (as well
> as changes the imports for the couple command sets that use it)

Ok I talked to Bryce and looked at Keiths email and think I have done
this the correct way this time.

Aaron
ChangeLog
2005-08-12  Aaron Luchko  <[EMAIL PROTECTED]>

        * vm/reference/gnu/classpath/jdwp/Frame.java: Implemented
        reference implementation of interface to VM for JDWP frame
        management.
        * gnu/classpath/jdwp/processor/StackFrameCommandSet.java: 
        updated import
        * gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java:
        updated import
        (executeFrames): changed getLoc() to getLocation()


Index: gnu/classpath/jdwp/processor/StackFrameCommandSet.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/classpath/jdwp/processor/StackFrameCommandSet.java,v
retrieving revision 1.1
diff -u -p -r1.1 StackFrameCommandSet.java
--- gnu/classpath/jdwp/processor/StackFrameCommandSet.java	9 Aug 2005 19:59:36 -0000	1.1
+++ gnu/classpath/jdwp/processor/StackFrameCommandSet.java	12 Aug 2005 18:39:36 -0000
@@ -39,6 +39,7 @@ exception statement from your version. *
 
 package gnu.classpath.jdwp.processor;
 
+import gnu.classpath.jdwp.Frame;
 import gnu.classpath.jdwp.IVirtualMachine;
 import gnu.classpath.jdwp.Jdwp;
 import gnu.classpath.jdwp.JdwpConstants;
@@ -47,7 +48,6 @@ import gnu.classpath.jdwp.exception.Jdwp
 import gnu.classpath.jdwp.exception.NotImplementedException;
 import gnu.classpath.jdwp.id.IdManager;
 import gnu.classpath.jdwp.id.ObjectId;
-import gnu.classpath.jdwp.util.Frame;
 import gnu.classpath.jdwp.util.Value;
 
 import java.io.DataOutputStream;
Index: gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java,v
retrieving revision 1.1
diff -u -p -r1.1 ThreadReferenceCommandSet.java
--- gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java	10 Aug 2005 20:21:24 -0000	1.1
+++ gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java	12 Aug 2005 18:39:36 -0000
@@ -39,6 +39,7 @@ exception statement from your version. *
 
 package gnu.classpath.jdwp.processor;
 
+import gnu.classpath.jdwp.Frame;
 import gnu.classpath.jdwp.IVirtualMachine;
 import gnu.classpath.jdwp.Jdwp;
 import gnu.classpath.jdwp.JdwpConstants;
@@ -49,7 +50,6 @@ import gnu.classpath.jdwp.exception.NotI
 import gnu.classpath.jdwp.id.IdManager;
 import gnu.classpath.jdwp.id.ObjectId;
 import gnu.classpath.jdwp.id.ThreadId;
-import gnu.classpath.jdwp.util.Frame;
 import gnu.classpath.jdwp.util.JdwpString;
 import gnu.classpath.jdwp.util.Location;
 
@@ -189,7 +189,7 @@ public class ThreadReferenceCommandSet i
       {
         Frame frame = (Frame) frames.get(i);
         os.writeLong(frame.getId());
-        Location loc = frame.getLoc();
+        Location loc = frame.getLocation();
         loc.write(os);
       }
   }
--- /dev/null	2005-06-09 16:29:11.371620296 -0400
+++ vm/reference/gnu/classpath/jdwp/Frame.java	2005-08-12 14:36:44.000000000 -0400
@@ -0,0 +1,100 @@
+/* Frame.java -- Reference implementation of VM hooks for JDWP Frame access.
+   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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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 Frame
+{
+  // 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 varialbe
+   */
+  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 this Frame resides in.
+   */
+  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;
+  }
+
+}
_______________________________________________
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to