--- a/JavaClass.st Tue Nov 10 00:23:19 1998 +0000
+++ b/JavaClass.st Tue Nov 10 14:29:36 1998 +0000
@@ -1782,6 +1782,28 @@
!JavaClass methodsFor:'special'!
+arrayClass
+self halt.
+ ^ Array
+
+ "Created: / 10.11.1998 / 02:07:32 / cg"
+ "Modified: / 10.11.1998 / 02:10:26 / cg"
+!
+
+asClassPointerRef
+self halt.
+ ^ self
+
+ "Created: / 10.11.1998 / 02:07:01 / cg"
+ "Modified: / 10.11.1998 / 02:10:30 / cg"
+!
+
+deref
+ ^ self
+
+ "Created: / 10.11.1998 / 02:08:06 / cg"
+!
+
updateClassRefsFrom:oldClass to:newClass
self == oldClass ifTrue:[
self makeObsolete.
@@ -1809,6 +1831,6 @@
!JavaClass class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClass.st,v 1.87 1998/11/10 00:19:49 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClass.st,v 1.88 1998/11/10 14:29:36 cg Exp $'
! !
JavaClass initialize!
--- a/JavaMethod.st Tue Nov 10 00:23:19 1998 +0000
+++ b/JavaMethod.st Tue Nov 10 14:29:36 1998 +0000
@@ -1476,6 +1476,29 @@
"Created: 5.2.1997 / 11:31:26 / cg"
!
+quickLineNumberForPC:pc
+ |last|
+
+ lineNumberTable notNil ifTrue:[
+ lineNumberTable pairWiseDo:[:lPc :lNr |
+ lPc >= pc ifTrue:[
+ lPc == pc ifTrue:[^ lNr].
+ last isNil ifTrue:[^ lNr].
+ ^ last.
+ ].
+ last := lNr.
+ ].
+ last notNil ifTrue:[
+ ^ last
+ ].
+ ^ lineNumberTable at:2
+ ].
+ ^ nil
+
+ "Modified: / 14.1.1998 / 13:30:54 / cg"
+ "Created: / 10.11.1998 / 14:18:22 / cg"
+!
+
who
"return the class and selector of where I am defined in."
@@ -1587,17 +1610,32 @@
"trampouline for unhandled cases ..."
aClassOrInterface isBehavior ifTrue:[
+ aClassOrInterface == ByteArray ifTrue:[
+ ^ anObject class == aClassOrInterface
+ ].
+
aClassOrInterface isInterface ifTrue:[
(anObject class hasInterface:aClassOrInterface) ifTrue:[
^ true
]
].
- ^ (anObject isKindOf:aClassOrInterface)
+ (anObject isKindOf:aClassOrInterface) ifTrue:[
+ ^ true
+ ].
+ anObject isArray ifTrue:[
+ ^ true
+ ].
+ self halt.
+ ^ false.
].
(aClassOrInterface isMemberOf:JavaClassPointerRef) ifTrue:[
"/ must be a pointer to an array of that class
- ^ anObject isArray
+ anObject isArray ifTrue:[
+ ^ true
+ ].
+ self halt.
+ ^ false.
].
(aClassOrInterface isMemberOf:JavaBuiltInClassPointerRef) ifTrue:[
aClassOrInterface arrayClass == anObject class ifTrue:[
@@ -1609,13 +1647,17 @@
anObject size == 0 ifTrue:[
^ true
].
- ^ self _checkCast:(anObject at:1) class:(aClassOrInterface deref).
+ (self _checkCast:(anObject at:1) class:(aClassOrInterface deref)) ifTrue:[
+ ^ true
+ ].
+ self halt.
+ ^ false
].
self halt.
^ false.
"Created: / 4.1.1998 / 16:44:59 / cg"
- "Modified: / 25.1.1998 / 18:25:03 / cg"
+ "Modified: / 10.11.1998 / 01:51:01 / cg"
!
_d2l:op1
@@ -1880,6 +1922,10 @@
_multiNew:typeRef _:dim1 _:dim2
|clsRef cls arr elType elSizes|
+ typeRef == Array ifTrue:[
+ self halt.
+ ].
+
clsRef := typeRef asClassPointerRef.
cls := clsRef arrayClass.
arr := cls new:dim2.
@@ -1893,7 +1939,7 @@
^ arr
"Created: / 6.1.1998 / 23:15:47 / cg"
- "Modified: / 6.1.1998 / 23:34:28 / cg"
+ "Modified: / 10.11.1998 / 02:09:35 / cg"
!
_multiNew:typeRef _:dim1 _:dim2 _:dim3
@@ -1981,6 +2027,6 @@
!JavaMethod class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.76 1998/11/10 00:22:39 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.77 1998/11/10 14:29:25 cg Exp $'
! !
JavaMethod initialize!