jvm.h (_Jv_AllocRawObj): New prototype.

* include/jvm.h (_Jv_AllocRawObj): New prototype.
	* boehm.cc (_Jv_AllocRawObj): Implement.
	* nogc.cc (_Jv_AllocRawObj): Likewise.
	* exception.cc (_Jv_Throw): Use _Jv_AllocRawObj, not GC_malloc.

From-SVN: r45497
This commit is contained in:
Bryce McKinlay 2001-09-10 01:21:08 +00:00 committed by Bryce McKinlay
parent 69971cd850
commit 7866a458e2
5 changed files with 26 additions and 4 deletions

View file

@ -1,3 +1,10 @@
2001-09-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* include/jvm.h (_Jv_AllocRawObj): New prototype.
* boehm.cc (_Jv_AllocRawObj): Implement.
* nogc.cc (_Jv_AllocRawObj): Likewise.
* exception.cc (_Jv_Throw): Use _Jv_AllocRawObj, not GC_malloc.
2001-09-06 Anthony Green <green@redhat.com>
* java/util/ResourceBundle.java (tryLocalBundle): Eliminate

View file

@ -375,6 +375,14 @@ _Jv_AllocArray (jsize size, jclass klass)
return obj;
}
/* Allocate space for a new non-Java object, which does not have the usual
Java object header but may contain pointers to other GC'ed objects. */
void *
_Jv_AllocRawObj (jsize size)
{
return (void *) GC_MALLOC (size);
}
static void
call_finalizer (GC_PTR obj, GC_PTR client_data)
{

View file

@ -20,8 +20,6 @@ details. */
#include "unwind.h"
#include <gc.h>
struct alignment_test_struct
{
@ -73,9 +71,8 @@ get_exception_header_from_ue (_Unwind_Exception *exc)
extern "C" void
_Jv_Throw (jthrowable value)
{
/* FIXME: Use the proper API to the collector. */
java_exception_header *xh
= static_cast<java_exception_header *>(GC_malloc (sizeof (*xh)));
= static_cast<java_exception_header *>(_Jv_AllocRawObj (sizeof (*xh)));
if (value == NULL)
value = new java::lang::NullPointerException ();

View file

@ -114,6 +114,9 @@ void *_Jv_AllocPtrFreeObj (jsize size, jclass cl) __attribute__((__malloc__));
void *_Jv_AllocArray (jsize size, jclass cl) __attribute__((__malloc__));
/* Allocate space that is known to be pointer-free. */
void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__));
/* Allocate space for a new non-Java object, which does not have the usual
Java object header but may contain pointers to other GC'ed objects. */
void *_Jv_AllocRawObj (jsize size) __attribute__((__malloc__));
/* Explicitly throw an out-of-memory exception. */
void _Jv_ThrowNoMemory() __attribute__((__noreturn__));
/* Allocate an object with a single pointer. The first word is reserved

View file

@ -66,6 +66,13 @@ _Jv_AllocBytes (jsize size)
return obj;
}
void *
_Jv_AllocRawObj (jsize size)
{
total += size;
return calloc (size, 1);
}
void
_Jv_RegisterFinalizer (void *, _Jv_FinalizerFunc *)
{