[RFA] Update VMVirtualMachine from Classpath

Keith Seitz keiths@redhat.com
Wed Jun 20 19:23:00 GMT 2007


Hi,

I've committed the classpath bits of this patch upstream already, and 
I'd like to do the same for us. This patch updates the VM interface's 
executeMethod function, and fixes several related bugs with processing 
method invocations.

The cp-*.patch is the classpath/ portion and the gcj-*.patch is the 
gcj-specific change to support this.

Ok?
Keith

ChangeLog
2007-07-19  Keith Seitz  <keiths@redhat.com>

         * gnu/classpath/jdwp/VMVirtualMachine.java (executeMethod):
         Update from reference implementation.
         * gnu/classpath/jdwp/natVMVirtualMachine.cc (executeMethod):
         Update parameter list to match new VMVirtualMachine interface.
         * 
classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class:
         Regenerate.
         * classpath/lib/gnu/classpath/jdwp/processor/
         ObjectReferenceCommandSet.class: Regenerate.
         * classpath/lib/gnu/classpath/jdwp/value/ObjectValue.class: 
Regenerate.
         * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: 
Regenerate.
         * classpath/lib/gnu/classpath/jdwp/util/MethodResult.class: 
Regenerate.

classpath/ChangeLog
2007-07-19  Keith Seitz  <keiths@redhat.com>

         * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
         (executeInvokeMethod): No need to use ValueFactory any more;
         MethodResult.getReturnedValue now returns a Value.
         (executeNewInstance): Double-check that return result is
         an ObjectValue; throw JdwpInternalErrorException if it is not.
         (invokeMethod): Method IDs come from VMMethod, not VMIdManager.
         Arguments are Values not Objects.
         Use ValueFactory to create arguments.
         Pass invocation options to VMVirtualMachine.executeMethod.
         Don't do any thread suspend/resume work: VMVM.executeMethod
         will take care of it.
         * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
         (executeInvokeMethod): Method IDs come from VMMethod, not
         VMIdManager.
         Arguments should be Values instead of Objects.
         Use ValueFactory to create Values.
         Remove specific option handling and pass options to
         VMVirtualMachine.executeMethod.
         Remove thread suspension.
         Use MethodResult.getReturnedValue to get method's result.
         * gnu/classpath/jdwp/util/MethodResult.java
         (returnedValue): Change type to Value.
         (thrownException): Change type to Throwable.
         (resType): Remove.
         (MethodResult): New constructor.
         (setReturnedValue): Remove.
         (SetThrownException): Remove.
         (getResultType): Remove.
         (setResultType): Remove.
         * gnu/classpath/jdwp/value/ObjectValue.java (getValue):
         New method.
         * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
         (executeMethod): Replace "nonVirtual" parameter with more
         generic "options" parameter.
         Replace java.lang.reflect.Method parameter with VMMethod.
         Replace Object[] parameter with Value[] parameter.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcj-VMVM_executeMethod-update.patch
Type: text/x-patch
Size: 2539 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java-patches/attachments/20070620/6062868c/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cp-VMVM_executeMethod-update.patch
Type: text/x-patch
Size: 12607 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java-patches/attachments/20070620/6062868c/attachment-0001.bin>


More information about the Java-patches mailing list