public void EnumChildren(EnumChildrenDelegate callback) { MfsCellId cellId; MfsObjectHeader *obj; cellId = _obj->ChildFlink; // Traverse the linked list. while (true) { MfsCellId newCellId; if (cellId == _cellId) { break; } obj = _fs.ReferenceObject(cellId); if (!callback(new MemoryObject(_fs, cellId))) { _fs.DereferenceObject(cellId); break; } newCellId = obj->Flink; _fs.DereferenceObject(cellId); cellId = newCellId; } }
public void EnumChildren(EnumChildrenDelegate callback) { MfsCellId cellId; MfsObjectHeader* obj; cellId = _obj->ChildFlink; // Traverse the linked list. while (true) { MfsCellId newCellId; if (cellId == _cellId) break; obj = _fs.ReferenceObject(cellId); if (!callback(new MemoryObject(_fs, cellId))) { _fs.DereferenceObject(cellId); break; } newCellId = obj->Flink; _fs.DereferenceObject(cellId); cellId = newCellId; } }