KScopedPageList.cs 625 B

123456789101112131415161718192021222324252627
  1. using System;
  2. namespace Ryujinx.HLE.HOS.Kernel.Memory
  3. {
  4. struct KScopedPageList : IDisposable
  5. {
  6. private readonly KMemoryManager _manager;
  7. private KPageList _pageList;
  8. public KScopedPageList(KMemoryManager manager, KPageList pageList)
  9. {
  10. _manager = manager;
  11. _pageList = pageList;
  12. pageList.IncrementPagesReferenceCount(manager);
  13. }
  14. public void SignalSuccess()
  15. {
  16. _pageList = null;
  17. }
  18. public void Dispose()
  19. {
  20. _pageList?.DecrementPagesReferenceCount(_manager);
  21. }
  22. }
  23. }