예제 #1
0
        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;
            }
        }
예제 #2
0
        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;
            }
        }