-
Notifications
You must be signed in to change notification settings - Fork 67
/
VMTHiddenRootTable.class.st
66 lines (57 loc) · 1.43 KB
/
VMTHiddenRootTable.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Class {
#name : #VMTHiddenRootTable,
#superclass : #Object,
#instVars : [
'memory'
],
#category : #'VMMaker-Tools'
}
{ #category : #'instance-creation' }
VMTHiddenRootTable class >> on: aMemory [
^ self new
memory: aMemory;
yourself
]
{ #category : #accessing }
VMTHiddenRootTable >> children [
| roots |
roots := OrderedCollection new.
1 to: memory classTableRootSlots do: [ :index | | oop |
oop := memory fetchPointer: index - 1 ofObject: memory hiddenRootsObject.
roots add: (VMTHiddenRoot new
memory: memory;
index: index - 1;
label: 'Class Table Page ', index asString;
oop: oop;
yourself).
].
roots add: (VMTHiddenRoot new
memory: memory;
index: 4096;
label: 'Mark Stack';
oop: (memory fetchPointer: 4096 ofObject: memory hiddenRootsObject);
yourself).
roots add: (VMTHiddenRoot new
memory: memory;
index: 4097;
label: 'Weakling Stack';
oop: (memory fetchPointer: 4097 ofObject: memory hiddenRootsObject);
yourself).
roots add: (VMTHiddenRoot new
memory: memory;
index: 4098;
label: 'Mourn Queue';
oop: (memory fetchPointer: 4098 ofObject: memory hiddenRootsObject);
yourself).
roots add: (VMTHiddenRoot new
memory: memory;
index: 4099;
label: 'Remembered Set';
oop: (memory fetchPointer: 4099 ofObject: memory hiddenRootsObject);
yourself).
^ roots
]
{ #category : #accessing }
VMTHiddenRootTable >> memory: aMemory [
memory := aMemory
]