#DOCUMENTATION by stefan
class: ProjectDefinition class
comment/format in: #rememberOverwrittenExtensionMethods
changed: #restoreOverwrittenExtensionMethods
--- a/ProjectDefinition.st Thu Mar 07 17:33:00 2019 +0100
+++ b/ProjectDefinition.st Thu Mar 07 18:11:09 2019 +0100
@@ -6519,32 +6519,34 @@
rememberOverwrittenExtensionMethods
"before loading, tell other packages to keep a safe reference to any method
- which gets overloaded by me, and also remember here, whome I have overloaded.
+ which gets overloaded by me, and also remember here, whom I have overloaded.
This allows for two things:
- a) correct fileout of the other base-package (for example, when checking in any of its class)
- b) correct unloading of myself"
+ a) correct fileout of the other base-package (for example, when checking in any of its class)
+ b) correct unloading of myself"
self extensionMethodNames pairWiseDo:[:className :selector |
- |class oldMethod oldPackage defClass|
-
- class := Smalltalk classNamed:className.
- class notNil ifTrue:[
- oldMethod := class compiledMethodAt:selector.
- ].
- oldMethod notNil ifTrue:[
- oldPackage := oldMethod package.
- oldPackage ~= PackageId noProjectID ifTrue:[
- defClass := oldPackage asPackageId projectDefinitionClass.
- defClass notNil ifTrue:[
- defClass rememberOverwrittenMethod:oldMethod inClass:class.
- extensionOverwriteInfo isNil ifTrue:[
- extensionOverwriteInfo := Dictionary new.
- ].
- extensionOverwriteInfo at:(className,'>>',selector) put:oldPackage.
- ]
- ].
- ].
- ].
+ |class oldMethod oldPackage defClass|
+
+ class := Smalltalk classNamed:className.
+ class notNil ifTrue:[
+ oldMethod := class compiledMethodAt:selector.
+ ].
+ oldMethod notNil ifTrue:[
+ oldPackage := oldMethod package.
+ oldPackage ~= PackageId noProjectID ifTrue:[
+ defClass := oldPackage asPackageId projectDefinitionClass.
+ defClass notNil ifTrue:[
+ defClass rememberOverwrittenMethod:oldMethod inClass:class.
+ extensionOverwriteInfo isNil ifTrue:[
+ extensionOverwriteInfo := Dictionary new.
+ ].
+ extensionOverwriteInfo at:(className,'>>',selector) put:oldPackage.
+ ]
+ ].
+ ].
+ ].
+
+ "Modified (comment): / 07-03-2019 / 18:02:46 / Stefan Vogel"
!
rememberOverwrittenMethod:oldMethod inClass:aClass
@@ -6581,6 +6583,7 @@
!
restoreOverwrittenExtensionMethods
+ <resource: #todo>
"after unloading, tell other packages to restore any saved reference to any method
which got overloaded by me.
Unfinished!!"