mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-26 04:14:06 +08:00
* interpret.cc (do_allocate_static_fields): Added comment.
From-SVN: r111683
This commit is contained in:
parent
65ad7c6394
commit
d07548f9ca
@ -1,3 +1,7 @@
|
||||
2006-03-03 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* interpret.cc (do_allocate_static_fields): Added comment.
|
||||
|
||||
2006-03-01 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
PR java/24321:
|
||||
|
@ -3882,7 +3882,17 @@ _Jv_InterpreterEngine::do_allocate_static_fields (jclass klass,
|
||||
_Jv_InterpClass *iclass = (_Jv_InterpClass *) klass->aux_info;
|
||||
|
||||
// Splitting the allocations here lets us scan reference fields and
|
||||
// avoid scanning non-reference fields.
|
||||
// avoid scanning non-reference fields. How reference fields are
|
||||
// scanned is a bit tricky: we allocate using _Jv_AllocRawObj, which
|
||||
// means that this memory will be scanned conservatively (same
|
||||
// difference, since we know all the contents here are pointers).
|
||||
// Then we put pointers into this memory into the 'fields'
|
||||
// structure. Most of these are interior pointers, which is ok (but
|
||||
// even so the pointer to the first reference field will be used and
|
||||
// that is not an interior pointer). The 'fields' array is also
|
||||
// allocated with _Jv_AllocRawObj (see defineclass.cc), so it will
|
||||
// be scanned. A pointer to this array is held by Class and thus
|
||||
// seen by the collector.
|
||||
char *reference_fields = (char *) _Jv_AllocRawObj (pointer_size);
|
||||
char *non_reference_fields = (char *) _Jv_AllocBytes (other_size);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user