--- a/SmallSense__Manager.st Tue Oct 22 17:25:26 2013 +0100
+++ b/SmallSense__Manager.st Tue Oct 22 17:29:00 2013 +0100
@@ -3,7 +3,7 @@
"{ NameSpace: SmallSense }"
Object subclass:#Manager
- instanceVariableNames:'classes accessLock updater'
+ instanceVariableNames:'classes accessLock updater seqno'
classVariableNames:'Instance'
poolDictionaries:''
category:'SmallSense-Smalltalk-Types-Info'
@@ -127,8 +127,9 @@
UserPreferences current smallSenseEnabled ifTrue:[
Smalltalk addDependent: self.
].
+ seqno := 0
- "Modified (format): / 28-11-2011 / 19:31:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-10-2013 / 10:56:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!Manager methodsFor:'updating'!
@@ -139,11 +140,13 @@
class programmingLanguage isSmalltalk ifFalse:[ ^ self ].
info := self infoForClassOrNil: class.
- info isNil ifTrue:[
+ (info isNil or:[(info seqno ? 0) < (seqno - 100)]) ifTrue:[
updater add: class
].
+ seqno := seqno == SmallInteger maxVal ifTrue: [1] ifFalse:[seqno + 1]
"Created: / 27-11-2011 / 17:46:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-10-2013 / 11:38:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
updateInfoForMethod: method
@@ -170,6 +173,7 @@
superclass := class superclass.
superclass notNil ifTrue:[self updateInfoForClass: superclass].
info := self infoForClass: class.
+ info seqno: seqno.
instVarNames := class allInstVarNames.
instVarTypes := instVarNames collect: [:instvar | info infoForInstvar: instvar ].
class methodsDo:[:mthd|updater add:mthd].
@@ -187,7 +191,7 @@
].
"Created: / 27-11-2011 / 18:04:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 01-10-2013 / 07:22:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-10-2013 / 11:14:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
delayedUpdateInfoForClassOrMethod: classOrMethod