You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by dl...@apache.org on 2006/04/10 15:08:08 UTC
svn commit: r392942 -
/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h
Author: dlydick
Date: Mon Apr 10 06:08:05 2006
New Revision: 392942
URL: http://svn.apache.org/viewcvs?rev=392942&view=rev
Log:
Expanded comments around attribute structures with a
data item 'some_typedef some_table[1];' to explain how
the heap allocation is large enough to hold all elements
of this instance of the table.
Modified:
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h?rev=392942&r1=392941&r2=392942&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h Mon Apr 10 06:08:05 2006
@@ -118,7 +118,10 @@
u2 attribute_name_index;
u4 attribute_length;
- u1 info[1]; /**< Spec pseudo-code: @c @b info[attribute_length]; */
+ u1 info[1]; /**< Mark space for one, but
+ @b attribute_length will reserve the correct
+ amount of space. See spec pseudo-code:
+ @c @b info[attribute_length]; */
} attribute_info;
@@ -1558,6 +1561,12 @@
* macro in @link jvm/src/classfile.c
classfile.c@endlink, this empty structure
* is provided.
+ *
+ * @warning If ever a late binding must be implemented,
+ * the above @c @b bytes[1] definition must
+ * be adjusted to allow for this in some way
+ * that either globally changes the implementation
+ * or does not disturb it at all.
*/
} LOCAL_Utf8_binding;
@@ -1803,10 +1812,11 @@
u4 attribute_length;
u2 number_of_exceptions;
- u2 exception_index_table[1]; /**< Mark space only for one.
+ u2 exception_index_table[1]; /**< Mark space only for one, but
+ @b attribute_length will reserve
+ the correct amount of space.
Spec pseudo-code:
@c @b exception_index_table[number_of_exceptions]; */
-
} Exceptions_attribute;
#define CONSTANT_UTF8_EXCEPTIONS_ATTRIBUTE "Exceptions"
@@ -1851,9 +1861,10 @@
u2 attribute_name_index;
u4 attribute_length;
u2 number_of_classes;
- inner_class_table_entry classes[1]; /**< Mark space only for one.
- Spec pseudo-code:
- @c @b classes[number_of_classes]; */
+ inner_class_table_entry classes[1]; /**< Mark space for one, but
+ @b attribute_length will reserve the correct
+ amount of space. See spec pseudo-code:
+ @c @b classes[number_of_classes]; */
} InnerClasses_attribute;
#define CONSTANT_UTF8_INNERCLASSES_ATTRIBUTE "InnerClasses"
@@ -2017,8 +2028,9 @@
u2 attribute_name_index;
u4 attribute_length;
u2 line_number_table_length;
- line_number_table_entry line_number_table[1]; /**< Mark space only
- for one. Spec pseudo-code:
+ line_number_table_entry line_number_table[1]; /**< Mark space for
+ one, but @b attribute_length will reserve the
+ correct amount of space. See spec pseudo-code:
@c @b line_number_table[line_number_table_length]; */
} LineNumberTable_attribute;
@@ -2062,7 +2074,8 @@
u4 attribute_length;
u2 local_variable_table_length;
local_variable_table_entry local_variable_table[1]; /**< Mark space
- only for one. Spec pseudo-code:
+ for one, but @b attribute_length will reserve the correct
+ amount of space. See spec pseudo-code:
@c @b local_variable_table[local_variable_table_length]; */
@@ -2107,7 +2120,8 @@
u4 attribute_length;
u2 local_variable_type_table_length;
local_variable_type_table_entry local_variable_type_table[1]; /**<
- Mark space only for one. Spec pseudo-code:
+ Mark space for one, but @b attribute_length will reserve
+ the correct amount of space. See spec pseudo-code:
@c @b local_variable_table[local_variable_type_table_length]; */
} LocalVariableTypeTable_attribute;
@@ -2243,8 +2257,9 @@
u2 type_index;
u2 num_element_value_pairs;
- element_value_pair element_value_pairs[1]; /**< Mark space only
- for one. Spec pseudo-code:
+ element_value_pair element_value_pairs[1]; /**< Mark space for one,
+ but @b attribute_length will reserve the correct
+ amount of space. See spec pseudo-code:
@c @b element_value_pairs[num_element_value_pairs] */
} annotation;
@@ -2260,8 +2275,10 @@
{
u2 num_values;
- element_value values[1]; /**< Mark space only for one. Spec
- pseudo-code: @c @b element_value values[num_values]; */
+ element_value values[1]; /**< Mark space for one, but
+ @b attribute_length will reserve the correct
+ amount of space. See spec pseudo-code:
+ @c @b element_value values[num_values]; */
} array_values;