Skip to content

Commit 21e9cf7

Browse files
committed
fixroot_array_memset_v2
1 parent 795e381 commit 21e9cf7

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

compiler/src/dmd/root/array.d

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ public:
5151

5252
~this() pure nothrow
5353
{
54-
debug (stomp) memset(data.ptr, 0xFF, data.length);
54+
debug (stomp)
55+
{
56+
if (data.ptr)
57+
memset(data.ptr, 0xFF, data.length * T.sizeof);
58+
}
5559
if (data.ptr && data.ptr != &smallarray[0])
5660
mem.xfree(data.ptr);
5761
}
@@ -209,14 +213,22 @@ public:
209213

210214
debug (stomp)
211215
{
212-
if (length < data.length)
213-
memset(data.ptr + length, 0xFF, (data.length - length) * T.sizeof);
216+
if (data.ptr)
217+
{
218+
if (length < data.length)
219+
memset(data.ptr + length, 0xFF, (data.length - length) * T.sizeof);
220+
}
214221
}
215222
else
216223
{
217224
if (mem.isGCEnabled)
218-
if (length < data.length)
219-
memset(data.ptr + length, 0xFF, (data.length - length) * T.sizeof);
225+
{
226+
if (data.ptr)
227+
{
228+
if (length < data.length)
229+
memset(data.ptr + length, 0xFF, (data.length - length) * T.sizeof);
230+
}
231+
}
220232
}
221233
}
222234

0 commit comments

Comments
 (0)