Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit e38a533

Browse files
committed
POSIX free purity
1 parent a4cc307 commit e38a533

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/core/memory.d

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -845,12 +845,21 @@ void* pureRealloc()(void* ptr, size_t size) @system pure @nogc nothrow
845845
fakePureErrno = errnosave;
846846
return ret;
847847
}
848+
848849
/// ditto
849850
void pureFree()(void* ptr) @system pure @nogc nothrow
850851
{
851-
const errnosave = fakePureErrno;
852-
fakePureFree(ptr);
853-
fakePureErrno = errnosave;
852+
version (Posix)
853+
{
854+
// POSIX free doesn't set errno
855+
fakePureFree(ptr);
856+
}
857+
else
858+
{
859+
const errnosave = fakePureErrno;
860+
fakePureFree(ptr);
861+
fakePureErrno = errnosave;
862+
}
854863
}
855864

856865
///

0 commit comments

Comments
 (0)