From fdafd4613f5e867d6065b9951803279a6d40fa56 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Wed, 10 May 2006 17:17:20 +0000 Subject: prims.cc (_Jv_soleIndirectCompiledEngine): New. 2006-05-09 Andrew Haley * 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 --- libjava/java/lang/Class.h | 2 ++ libjava/java/lang/natClassLoader.cc | 2 ++ 2 files changed, 4 insertions(+) (limited to 'libjava/java/lang') 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); -- cgit v1.1