Merged revisions 8245-8298 via svnmerge from
[cacao.git] / src / vmcore / annotation.h
index cafa190f779808c9341bd6aaac8054690b81ca3d..3d2f4b768d77619e8fb9c7c7e6b1ef005507918b 100644 (file)
@@ -22,8 +22,6 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: utf8.h 5920 2006-11-05 21:23:09Z twisti $
-
 */
 
 
 
 /* forward typedefs ***********************************************************/
 
-typedef struct annotation_t    annotation_t;
-typedef struct element_value_t element_value_t;
+typedef struct annotation_bytearray_t annotation_bytearray_t;
+typedef struct annotation_t           annotation_t;
+typedef struct element_value_t        element_value_t;
+typedef struct annotation_bytearrays_t annotation_bytearrays_t;
 
 #include "config.h"
 #include "vm/types.h"
 
 #include "vm/global.h"
 
+#include "vmcore/class.h"
+#include "vmcore/field.h"
+#include "vmcore/method.h"
 #include "vmcore/loader.h"
 #include "vmcore/utf8.h"
 
 
+/* annotation_bytearray *******************************************************/
+
+struct annotation_bytearray_t {
+       uint32_t size;
+       uint8_t  data[1];
+};
+
+/* annotation_bytearrays ******************************************************/
+
+struct annotation_bytearrays_t {
+       uint32_t size;
+       annotation_bytearray_t *data[1];
+};
+
 /* annotation *****************************************************************/
 
 struct annotation_t {
@@ -52,7 +69,6 @@ struct annotation_t {
        element_value_t *element_values;
 };
 
-
 /* element_value **************************************************************/
 
 struct element_value_t {
@@ -63,7 +79,46 @@ struct element_value_t {
 
 /* function prototypes ********************************************************/
 
-bool annotation_load_attribute_runtimevisibleannotations(classbuffer *cb);
+annotation_bytearray_t *annotation_bytearray_new(uint32_t size);
+
+void annotation_bytearray_free(annotation_bytearray_t *ba);
+
+annotation_bytearrays_t *annotation_bytearrays_new(uint32_t size);
+
+bool annotation_bytearrays_resize(annotation_bytearrays_t **bas,
+       uint32_t size);
+
+bool annotation_bytearrays_insert(annotation_bytearrays_t **bas,
+       uint32_t index, annotation_bytearray_t *ba);
+
+void annotation_bytearrays_free(annotation_bytearrays_t *bas);
+
+bool annotation_load_class_attribute_runtimevisibleannotations(
+       classbuffer *cb);
+
+bool annotation_load_class_attribute_runtimeinvisibleannotations(
+       classbuffer *cb);
+
+bool annotation_load_method_attribute_runtimevisibleannotations(
+       classbuffer *cb, methodinfo *m);
+
+bool annotation_load_method_attribute_runtimeinvisibleannotations(
+       classbuffer *cb, methodinfo *m);
+
+bool annotation_load_field_attribute_runtimevisibleannotations(
+       classbuffer *cb, fieldinfo *f);
+
+bool annotation_load_field_attribute_runtimeinvisibleannotations(
+       classbuffer *cb, fieldinfo *f);
+
+bool annotation_load_method_attribute_annotationdefault(
+       classbuffer *cb, methodinfo *m);
+
+bool annotation_load_method_attribute_runtimevisibleparameterannotations(
+       classbuffer *cb, methodinfo *m);
+
+bool annotation_load_method_attribute_runtimeinvisibleparameterannotations(
+       classbuffer *cb, methodinfo *m);
 
 #endif /* _ANNOTATION_H */