[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