#BUGFIX by cg
class: ChangeSet
comment/format in: #condenseChangesForClass:package:
changed: #condenseChangesForClass:selector:package:
--- a/ChangeSet.st Fri Dec 13 20:16:06 2019 +0100
+++ b/ChangeSet.st Fri Dec 13 20:55:38 2019 +0100
@@ -1930,12 +1930,12 @@
self condenseChangesForClass:aClass package:nil
!
-condenseChangesForClass:aClass package:aPackageSymbol
+condenseChangesForClass:aClass package:aPackageSymbolOrNil
"remove all changes for aClass (and its metaclass) and aPackageSymbol
(i.e. leave methodChanges for other packages).
This is invoked when a class is checked into the repository."
- self condenseChangesForClass:aClass selector:nil package:aPackageSymbol
+ self condenseChangesForClass:aClass selector:nil package:aPackageSymbolOrNil
"Modified: / 5.11.2001 / 14:29:22 / cg"
!
@@ -1948,7 +1948,7 @@
"Created: / 26-09-2006 / 17:22:59 / cg"
!
-condenseChangesForClass:aClass selector:selectorOrNil package:aPackageSymbol
+condenseChangesForClass:aClass selector:selectorOrNil package:aPackageSymbolOrNil
"remove all changes for aClass/selector and aPackageSymbol
(i.e. leave methodChanges for other packages).
If selectorOrNil is nil, all changes for that class (or metaclass) are removed;
@@ -1961,59 +1961,60 @@
metaClassName := aClass theMetaclass name.
changesToRemove :=
- self select:[:aChange |
- |chgClassName chgClass removeThis mClass mthd|
-
- removeThis := false.
- chgClassName := aChange className.
- (chgClassName = className or:[chgClassName = metaClassName]) ifTrue:[
- removeThis := true
- ] ifFalse:[
- chgCls := aChange changeClass.
- chgCls isNil ifTrue:[
- (chgClassName startsWith:(aClass name,':')) ifTrue:[
- "a change for a private class of a no-longer present one..."
- removeThis := true
- ].
- ].
-
- (chgCls notNil
- and:[chgCls isPrivate
- and:[chgCls topOwningClass == aClass]]) ifTrue:[
- removeThis := true
- ]
- ].
- selectorOrNil notNil ifTrue:[
- (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifFalse:[
- removeThis := false.
- ] ifTrue:[
- aChange selector = selectorOrNil ifFalse:[
- removeThis := false.
- ].
- ]
- ].
-
- removeThis ifTrue:[
- aChange isMethodChange ifTrue:[
- mClass := aChange changeClass.
- mClass notNil ifTrue:[
- mthd := mClass compiledMethodAt:(aChange selector).
- mthd isNil ifTrue:[
- "/ mthd does no longer exist
- "/ I no longer understand what this was meant for .. (sigh)
- "/ aPackageSymbol notNil ifTrue:[
- "/ removeThis := false
- "/ ]
- ] ifFalse:[
- (aPackageSymbol notNil and:[mthd package ~= aPackageSymbol]) ifTrue:[
- removeThis := false
- ]
- ]
- ]
- ].
- ].
- removeThis
- ].
+ self select:[:aChange |
+ |chgClassName chgClass removeThis mClass mthd|
+
+ removeThis := false.
+ chgClassName := aChange fullClassName "className".
+
+ (chgClassName = className or:[chgClassName = metaClassName]) ifTrue:[
+ removeThis := true
+ ] ifFalse:[
+ chgCls := aChange changeClass.
+ chgCls isNil ifTrue:[
+ (chgClassName startsWith:(aClass name,':')) ifTrue:[
+ "a change for a private class of a no-longer present one..."
+ removeThis := true
+ ].
+ ].
+
+ (chgCls notNil
+ and:[chgCls isPrivate
+ and:[chgCls topOwningClass == aClass]]) ifTrue:[
+ removeThis := true
+ ]
+ ].
+ selectorOrNil notNil ifTrue:[
+ (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifFalse:[
+ removeThis := false.
+ ] ifTrue:[
+ aChange selector = selectorOrNil ifFalse:[
+ removeThis := false.
+ ].
+ ]
+ ].
+
+ removeThis ifTrue:[
+ aChange isMethodChange ifTrue:[
+ mClass := aChange changeClass.
+ mClass notNil ifTrue:[
+ mthd := mClass compiledMethodAt:(aChange selector).
+ mthd isNil ifTrue:[
+ "/ mthd does no longer exist
+ "/ I no longer understand what this was meant for .. (sigh)
+ "/ aPackageSymbol notNil ifTrue:[
+ "/ removeThis := false
+ "/ ]
+ ] ifFalse:[
+ (aPackageSymbolOrNil notNil and:[mthd package ~= aPackageSymbolOrNil]) ifTrue:[
+ removeThis := false
+ ]
+ ]
+ ]
+ ].
+ ].
+ removeThis
+ ].
self condenseChanges:changesToRemove