JavaUnresolvedMethodrefConstant.st
changeset 596 1649256b9b6d
parent 454 38f590639d65
child 619 b4868e432de3
--- a/JavaUnresolvedMethodrefConstant.st	Sat Aug 21 11:35:42 1999 +0000
+++ b/JavaUnresolvedMethodrefConstant.st	Sat Aug 21 11:36:13 1999 +0000
@@ -187,10 +187,46 @@
     self rememberForResolveWith:(class fullName).
     ^ self
 
+!
+
+resolveMethod
+    |nm sig mthd cls class|
+
+    class := (constantPool at:classIndex).
+    class isUnresolved ifTrue:[
+        class := class preResolve.
+    ].
+    class isUnresolved ifTrue:[
+"/        self halt:'unresolved class: ' , class name.
+        JavaVM throwClassNotFoundException:class name.
+        ^ nil.
+    ].
+self halt.
+    cls := class javaClass.
+    cls ~~ class ifTrue:[
+        class := cls.
+    ].
+
+    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
+        cls := class resolve.
+        cls notNil ifTrue:[
+            class := cls
+        ]
+    ].
+    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
+        self halt:'unresolved class'.
+    ].
+    mthd := self preResolve.
+    mthd == self ifTrue:[
+        self halt:'unresolved method'.
+    ].
+
+    ^ mthd
+
 ! !
 
 !JavaUnresolvedMethodrefConstant class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedMethodrefConstant.st,v 1.10 1998/11/16 15:16:31 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedMethodrefConstant.st,v 1.11 1999/08/21 11:36:13 cg Exp $'
 ! !