ObjFHandle.st
changeset 157 d7f68808a258
parent 154 04716b86ad29
child 259 a469695d8d19
--- a/ObjFHandle.st	Wed Dec 06 13:42:24 1995 +0100
+++ b/ObjFHandle.st	Wed Dec 06 18:23:42 1995 +0100
@@ -92,15 +92,16 @@
 !
 
 method
-    "return method"
+    "return the method"
 
+    weakMethodRef isNil ifTrue:[^ nil].
     ^ weakMethodRef at:1 
 
     "Created: 14.9.1995 / 21:13:13 / claus"
 !
 
 method:something
-    "set method"
+    "set the method"
 
     weakMethodRef := WeakArray with:something.
     weakMethodRef addDependent:self.
@@ -173,6 +174,30 @@
     "Created: 14.9.1995 / 21:13:12 / claus"
 ! !
 
+!ObjectFileHandle methodsFor:'printing'!
+
+printOn:aStream
+    aStream nextPutAll:self class name; nextPutAll:'(handle=<'. 
+    sysHandle1 printOn:aStream. 
+    aStream nextPutAll:' '. 
+    sysHandle2 printOn:aStream. 
+    aStream nextPutAll:'> path='''. 
+    pathName printOn:aStream. 
+    aStream nextPutAll:''' id='. 
+    moduleID printOn:aStream. 
+    aStream nextPutAll:' type='. 
+    handleType printOn:aStream.
+    aStream nextPutAll:' method=<'.
+    self method printOn:aStream.
+    aStream nextPutAll:'> classes=<'.
+    self classes printOn:aStream.
+    aStream nextPutAll:'>'.
+
+    aStream nextPutAll:')'.
+
+    "Modified: 6.12.1995 / 18:11:53 / cg"
+! !
+
 !ObjectFileHandle methodsFor:'queries'!
 
 isClassLibHandle
@@ -187,6 +212,20 @@
     ^ handleType == #methodObject
 !
 
+isForCollectedObject
+    "return true, if my clases/method has already been garbage collected"
+
+    handleType == #classLibraryObject ifTrue:[
+	^ (weakClassRefs findFirst:[:x | x notNil]) == 0
+    ].
+    handleType == #methodObject ifTrue:[
+	^ (weakMethodRef at:1) isNil
+    ].
+    ^ false
+
+    "Created: 6.12.1995 / 17:46:58 / cg"
+!
+
 isObsolete
     "return true, if my clases/method has already been removed from
      the image. I.e. if the object file can be unloaded without danger."
@@ -205,5 +244,5 @@
 !ObjectFileHandle class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/Attic/ObjFHandle.st,v 1.11 1995-12-06 09:46:53 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Attic/ObjFHandle.st,v 1.12 1995-12-06 17:23:29 cg Exp $'
 ! !