Skip to content

Commit b1029c8

Browse files
committed
Mutant pharo-project#592, Reverting [ Replace #ifTrue: receiver with false ] on method [ markAndShouldScan: ] KILLED by 1/10 test cases.
1 parent d69cf54 commit b1029c8

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

smalltalksrc/VMMaker/SpurMemoryManager.class.st

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8159,34 +8159,36 @@ SpurMemoryManager >> markAllUnscannedEphemerons [
81598159
81608160
{ #category : #'gc - global' }
81618161
SpurMemoryManager >> markAndShouldScan: objOop [
8162-
81638162
"Helper for markAndTrace:.
81648163
Mark the argument, and answer if its fields should be scanned now.
81658164
Immediate objects don't need to be marked.
81668165
Already marked objects have already been processed.
81678166
Pure bits objects don't need scanning, although their class does.
81688167
Weak objects should be pushed on the weakling stack.
81698168
Anything else need scanning."
8170-
8171-
<inline: true>
81728169
| format |
8173-
(self isImmediate: objOop) ifTrue: [ ^ false ].
8170+
<inline: true>
8171+
(self isImmediate: objOop) ifTrue:
8172+
[^false].
81748173
"if markAndTrace: is to follow and eliminate forwarding pointers
81758174
in its scan it cannot be handed an r-value which is forwarded."
81768175
self assert: (self isForwarded: objOop) not.
8177-
(self isMarked: objOop) ifTrue: [ ^ false ].
8176+
(self isMarked: objOop) ifTrue:
8177+
[^false].
81788178
self setIsMarkedOf: objOop to: true.
81798179
format := self formatOf: objOop.
8180-
(self isPureBitsFormat: format) ifTrue: [ "Avoid tracing classes of non-objects on the heap, e.g. IRC caches, Sista counters.""avoid pushing non-pointer objects on the markStack."
8181-
(self classIndexOf: objOop) > self lastClassIndexPun ifTrue: [
8182-
self markAndTraceClassOf: objOop ].
8183-
^ false ].
8184-
false ifTrue: [ "push weaklings on the weakling stack to scan later"
8185-
self push: objOop onObjStack: weaklingStack.
8186-
^ false ].
8187-
(format = self ephemeronFormat and: [
8188-
self activeAndDeferredScan: objOop ]) ifTrue: [ ^ false ].
8189-
^ true
8180+
(self isPureBitsFormat: format) ifTrue: "avoid pushing non-pointer objects on the markStack."
8181+
["Avoid tracing classes of non-objects on the heap, e.g. IRC caches, Sista counters."
8182+
(self classIndexOf: objOop) > self lastClassIndexPun ifTrue:
8183+
[self markAndTraceClassOf: objOop].
8184+
^false].
8185+
format = self weakArrayFormat ifTrue: "push weaklings on the weakling stack to scan later"
8186+
[self push: objOop onObjStack: weaklingStack.
8187+
^false].
8188+
(format = self ephemeronFormat
8189+
and: [self activeAndDeferredScan: objOop]) ifTrue:
8190+
[^false].
8191+
^true
81908192
]
81918193
81928194
{ #category : #'gc - global' }

0 commit comments

Comments
 (0)