aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2006-05-10 17:17:20 +0000
committerAndrew Haley <aph@gcc.gnu.org>2006-05-10 17:17:20 +0000
commitfdafd4613f5e867d6065b9951803279a6d40fa56 (patch)
tree3d05e19771942fcb867ce8da5bf1c3330d200872 /libjava/java
parent05a79eb6bce1cb36c961e6d5421a960395a7a0a1 (diff)
downloadgcc-fdafd4613f5e867d6065b9951803279a6d40fa56.zip
gcc-fdafd4613f5e867d6065b9951803279a6d40fa56.tar.gz
gcc-fdafd4613f5e867d6065b9951803279a6d40fa56.tar.bz2
prims.cc (_Jv_soleIndirectCompiledEngine): New.
2006-05-09 Andrew Haley <aph@redhat.com> * prims.cc (_Jv_soleIndirectCompiledEngine): New. * include/execution.h (Jv_CompiledEngine::do_allocate_static_fields): Remove body. (_Jv_CompiledEngine::allocate_field_initializers): New. (_Jv_CompiledEngine::_Jv_CompiledEngine): Initialize allocate_field_initializers. (class _Jv_IndirectCompiledClass): New. (struct _Jv_IndirectCompiledEngine): New. * java/lang/Class.h: (IndirectCompiledEngine): New. * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Set engine to _Jv_soleIndirectCompiledEngine * link.cc (ensure_fields_laid_out): Call engine->allocate_field_initializers(). From-SVN: r113674
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/Class.h2
-rw-r--r--libjava/java/lang/natClassLoader.cc2
2 files changed, 4 insertions, 0 deletions
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
index f6ca3de..22a078d 100644
--- a/libjava/java/lang/Class.h
+++ b/libjava/java/lang/Class.h
@@ -96,6 +96,7 @@ struct _Jv_ArrayVTable;
class _Jv_Linker;
class _Jv_ExecutionEngine;
class _Jv_CompiledEngine;
+class _Jv_IndirectCompiledEngine;
class _Jv_InterpreterEngine;
#ifdef INTERPRETER
@@ -538,6 +539,7 @@ private:
friend class ::_Jv_Linker;
friend class ::_Jv_ExecutionEngine;
friend class ::_Jv_CompiledEngine;
+ friend class ::_Jv_IndirectCompiledEngine;
friend class ::_Jv_InterpreterEngine;
friend void ::_Jv_sharedlib_register_hook (jclass klass);
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index 87419c3..43e624a 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -200,6 +200,8 @@ _Jv_NewClassFromInitializer (const jclass class_initializer)
&java::lang::Class::class$);
memcpy ((void*)new_class, (void*)class_initializer, sizeof *new_class);
+ new_class->engine = &_Jv_soleIndirectCompiledEngine;
+
if (_Jv_CheckABIVersion ((unsigned long) new_class->next_or_version))
(*_Jv_RegisterClassHook) (new_class);