Skip to content

Commit b7e9dae

Browse files
authored
[scudo] Improve readability of MemMapFuchsia's error handling (#90102)
By expressing the conditions covered by MAP_ALLOWNOMEM in a more direct way.
1 parent dbcc454 commit b7e9dae

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

compiler-rt/lib/scudo/standalone/mem_map_fuchsia.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ bool MemMapFuchsia::mapImpl(UNUSED uptr Addr, uptr Size, const char *Name,
108108
// Create the VMO.
109109
zx_status_t Status = _zx_vmo_create(Size, 0, &Vmo);
110110
if (UNLIKELY(Status != ZX_OK)) {
111-
if (!IsNoMemError(Status) || !AllowNoMem)
112-
dieOnError(Status, "zx_vmo_create", Size);
113-
return false;
111+
if (AllowNoMem && IsNoMemError(Status))
112+
return false;
113+
dieOnError(Status, "zx_vmo_create", Size);
114114
}
115115

116116
if (Name != nullptr)
@@ -123,15 +123,15 @@ bool MemMapFuchsia::mapImpl(UNUSED uptr Addr, uptr Size, const char *Name,
123123
Status =
124124
_zx_vmar_map(_zx_vmar_root_self(), MapFlags, 0, Vmo, 0, Size, &MapAddr);
125125
if (UNLIKELY(Status != ZX_OK)) {
126-
if (!IsNoMemError(Status) || !AllowNoMem)
127-
dieOnError(Status, "zx_vmar_map", Size);
128-
129-
Status = _zx_handle_close(Vmo);
130-
CHECK_EQ(Status, ZX_OK);
126+
if (AllowNoMem && IsNoMemError(Status)) {
127+
Status = _zx_handle_close(Vmo);
128+
CHECK_EQ(Status, ZX_OK);
131129

132-
MapAddr = 0;
133-
Vmo = ZX_HANDLE_INVALID;
134-
return false;
130+
MapAddr = 0;
131+
Vmo = ZX_HANDLE_INVALID;
132+
return false;
133+
}
134+
dieOnError(Status, "zx_vmar_map", Size);
135135
}
136136

137137
if (PreCommit) {
@@ -194,9 +194,9 @@ bool MemMapFuchsia::remapImpl(uptr Addr, uptr Size, const char *Name,
194194
_zx_vmar_map(_zx_vmar_root_self(), MapFlags, Addr - getRootVmarBase(),
195195
Vmo, Addr - MapAddr, Size, &MappedAddr);
196196
if (UNLIKELY(Status != ZX_OK)) {
197-
if (!IsNoMemError(Status) || !AllowNoMem)
198-
dieOnError(Status, "zx_vmar_map", Size);
199-
return false;
197+
if (AllowNoMem && IsNoMemError(Status))
198+
return false;
199+
dieOnError(Status, "zx_vmar_map", Size);
200200
}
201201
DCHECK_EQ(Addr, MappedAddr);
202202

@@ -234,9 +234,9 @@ bool ReservedMemoryFuchsia::createImpl(UNUSED uptr Addr, uptr Size,
234234
zx_status_t Status = _zx_vmar_map(_zx_vmar_root_self(), ZX_VM_ALLOW_FAULTS, 0,
235235
getPlaceholderVmo(), 0, Size, &Base);
236236
if (UNLIKELY(Status != ZX_OK)) {
237-
if (!IsNoMemError(Status) || !AllowNoMem)
238-
dieOnError(Status, "zx_vmar_map", Size);
239-
return false;
237+
if (AllowNoMem && IsNoMemError(Status))
238+
return false;
239+
dieOnError(Status, "zx_vmar_map", Size);
240240
}
241241

242242
Capacity = Size;

0 commit comments

Comments
 (0)