summaryrefslogtreecommitdiff
path: root/gcc/d/dmd/common/outbuffer.d
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/d/dmd/common/outbuffer.d')
-rw-r--r--gcc/d/dmd/common/outbuffer.d32
1 files changed, 7 insertions, 25 deletions
diff --git a/gcc/d/dmd/common/outbuffer.d b/gcc/d/dmd/common/outbuffer.d
index e5cc43b9d12..fafe90e5357 100644
--- a/gcc/d/dmd/common/outbuffer.d
+++ b/gcc/d/dmd/common/outbuffer.d
@@ -82,18 +82,17 @@ struct OutBuffer
/**
Frees resources associated.
*/
- extern (C++) void dtor() nothrow @trusted
+ extern (C++) void dtor() pure nothrow @trusted
{
if (fileMapping)
{
if (fileMapping.active)
fileMapping.close();
- fileMapping = null;
}
else
{
debug (stomp) memset(data.ptr, 0xFF, data.length);
- free(data.ptr);
+ pureFree(data.ptr);
}
}
@@ -102,17 +101,7 @@ struct OutBuffer
*/
extern (C++) ~this() pure nothrow @trusted
{
- if (fileMapping)
- {
- if (fileMapping.active)
- fileMapping.close();
- fileMapping = null;
- }
- else
- {
- debug (stomp) memset(data.ptr, 0xFF, data.length);
- pureFree(data.ptr);
- }
+ dtor();
}
/// For porting with ease from dmd.backend.outbuf.Outbuffer
@@ -150,17 +139,10 @@ struct OutBuffer
*/
extern (C++) void destroy() pure nothrow @trusted
{
- if (fileMapping && fileMapping.active)
- {
- fileMapping.close();
- data = null;
- offset = 0;
- }
- else
- {
- debug (stomp) memset(data.ptr, 0xFF, data.length);
- pureFree(extractData());
- }
+ dtor();
+ fileMapping = null;
+ data = null;
+ offset = 0;
}
/**