This commit is contained in:
dcode
2019-05-20 23:10:06 +02:00
parent f73d807d5a
commit 3e480d9423
108 changed files with 123377 additions and 48800 deletions

View File

@ -56,23 +56,15 @@ export class FixedArray<T> {
}
}
// GC integration
// RT integration
@unsafe private __traverse(cookie: u32): void {
@unsafe private __visit_impl(cookie: u32): void {
if (isManaged<T>()) {
let cur = changetype<usize>(this);
let end = cur + changetype<BLOCK>(changetype<usize>(this) - BLOCK_OVERHEAD).rtSize;
while (cur < end) {
let val = load<usize>(cur);
if (isNullable<T>()) {
if (val) {
__visit(val, cookie);
__visit_members(val, cookie);
}
} else {
__visit(val, cookie);
__visit_members(val, cookie);
}
if (val) __visit(val, cookie);
cur += sizeof<usize>();
}
}