diff options
author | Fabio D'Urso <fdurso@google.com> | 2024-04-25 23:23:42 +0200 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-04-25 14:30:39 -0700 |
commit | 654039be90606a740e7aa341ec8c91cdbe57ed6b (patch) | |
tree | c2a6a4bfd467be85fee40ee41be6b276998a85a9 | |
parent | e7c3a3d5418206d54b278c3f76613e00910f5350 (diff) | |
download | scudo-654039be90606a740e7aa341ec8c91cdbe57ed6b.tar.gz |
[scudo] Improve readability of MemMapFuchsia's error handling (#90102)
By expressing the conditions covered by MAP_ALLOWNOMEM in a more
direct way.
GitOrigin-RevId: b7e9dae6f6a4610bee729179167a0ac4a3dd7b7b
Change-Id: I09a1adb12af85b08c6b5fb34051ed7d162998f00
-rw-r--r-- | standalone/mem_map_fuchsia.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/standalone/mem_map_fuchsia.cpp b/standalone/mem_map_fuchsia.cpp index 5f3c8b81c07..fc793abf44c 100644 --- a/standalone/mem_map_fuchsia.cpp +++ b/standalone/mem_map_fuchsia.cpp @@ -108,9 +108,9 @@ bool MemMapFuchsia::mapImpl(UNUSED uptr Addr, uptr Size, const char *Name, // Create the VMO. zx_status_t Status = _zx_vmo_create(Size, 0, &Vmo); if (UNLIKELY(Status != ZX_OK)) { - if (!IsNoMemError(Status) || !AllowNoMem) - dieOnError(Status, "zx_vmo_create", Size); - return false; + if (AllowNoMem && IsNoMemError(Status)) + return false; + dieOnError(Status, "zx_vmo_create", Size); } if (Name != nullptr) @@ -123,15 +123,15 @@ bool MemMapFuchsia::mapImpl(UNUSED uptr Addr, uptr Size, const char *Name, Status = _zx_vmar_map(_zx_vmar_root_self(), MapFlags, 0, Vmo, 0, Size, &MapAddr); if (UNLIKELY(Status != ZX_OK)) { - if (!IsNoMemError(Status) || !AllowNoMem) - dieOnError(Status, "zx_vmar_map", Size); - - Status = _zx_handle_close(Vmo); - CHECK_EQ(Status, ZX_OK); + if (AllowNoMem && IsNoMemError(Status)) { + Status = _zx_handle_close(Vmo); + CHECK_EQ(Status, ZX_OK); - MapAddr = 0; - Vmo = ZX_HANDLE_INVALID; - return false; + MapAddr = 0; + Vmo = ZX_HANDLE_INVALID; + return false; + } + dieOnError(Status, "zx_vmar_map", Size); } if (PreCommit) { @@ -194,9 +194,9 @@ bool MemMapFuchsia::remapImpl(uptr Addr, uptr Size, const char *Name, _zx_vmar_map(_zx_vmar_root_self(), MapFlags, Addr - getRootVmarBase(), Vmo, Addr - MapAddr, Size, &MappedAddr); if (UNLIKELY(Status != ZX_OK)) { - if (!IsNoMemError(Status) || !AllowNoMem) - dieOnError(Status, "zx_vmar_map", Size); - return false; + if (AllowNoMem && IsNoMemError(Status)) + return false; + dieOnError(Status, "zx_vmar_map", Size); } DCHECK_EQ(Addr, MappedAddr); @@ -234,9 +234,9 @@ bool ReservedMemoryFuchsia::createImpl(UNUSED uptr Addr, uptr Size, zx_status_t Status = _zx_vmar_map(_zx_vmar_root_self(), ZX_VM_ALLOW_FAULTS, 0, getPlaceholderVmo(), 0, Size, &Base); if (UNLIKELY(Status != ZX_OK)) { - if (!IsNoMemError(Status) || !AllowNoMem) - dieOnError(Status, "zx_vmar_map", Size); - return false; + if (AllowNoMem && IsNoMemError(Status)) + return false; + dieOnError(Status, "zx_vmar_map", Size); } Capacity = Size; |