diff options
author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-10 17:17:20 +0000 |
---|---|---|
committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-10 17:17:20 +0000 |
commit | 150315eee8c9f1df3129b2be82d679fcca4335cd (patch) | |
tree | 3d05e19771942fcb867ce8da5bf1c3330d200872 /libjava/java | |
parent | 5f01faf20c12be8f15e34342c50d959acc6c2485 (diff) | |
download | ppe42-gcc-150315eee8c9f1df3129b2be82d679fcca4335cd.tar.gz ppe42-gcc-150315eee8c9f1df3129b2be82d679fcca4335cd.zip |
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().
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113674 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/Class.h | 2 | ||||
-rw-r--r-- | libjava/java/lang/natClassLoader.cc | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index f6ca3deb949..22a078df2fc 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 87419c3e88f..43e624a3f74 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); |