* interpret.cc (do_allocate_static_fields): Added comment.

From-SVN: r111683
This commit is contained in:
Tom Tromey 2006-03-03 18:32:22 +00:00 committed by Tom Tromey
parent 65ad7c6394
commit d07548f9ca
2 changed files with 15 additions and 1 deletions

View File

@ -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:

View File

@ -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);