From 9a069e71d21fdcc5f0bb618c28257b9ff7d9cbe7 Mon Sep 17 00:00:00 2001
From: tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 21 Feb 2000 05:14:06 +0000
Subject: [PATCH] 	* boehm.cc (_Jv_AllocBytes): Clear returned memory.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32085 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libjava/ChangeLog | 4 ++++
 libjava/boehm.cc  | 9 ++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7ff9c1c26fc6..c767dfb6df97 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+2000-02-20  Tom Tromey  <tromey@cygnus.com>
+
+	* boehm.cc (_Jv_AllocBytes): Clear returned memory.
+
 2000-02-19  Bryce McKinlay  <bryce@albatross.co.nz>
 
 	* java/util/zip/ZipEntry.java (setCrc): Fix overflow.
diff --git a/libjava/boehm.cc b/libjava/boehm.cc
index 2c50c5cc0f09..ccfe9ee16c4a 100644
--- a/libjava/boehm.cc
+++ b/libjava/boehm.cc
@@ -321,7 +321,14 @@ _Jv_AllocArray (jsize size)
 void *
 _Jv_AllocBytes (jsize size)
 {
-  return GC_GENERIC_MALLOC (size, PTRFREE);
+  void *r = GC_GENERIC_MALLOC (size, PTRFREE);
+  // We have to explicitly zero memory here, as the GC doesn't
+  // guarantee that PTRFREE allocations are zeroed.  Note that we
+  // don't have to do this for other allocation types because we set
+  // the `ok_init' flag in the type descriptor.
+  if (r != NULL)
+    memset (r, 0, size);
+  return r;
 }
 
 static void
-- 
GitLab