SmallSense__Manager.st
changeset 138 3355e5292e1d
parent 111 2d880f47cfff
child 174 3e08d765d86f
--- 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