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 {
element_value_t *element_values;
};
-
/* element_value **************************************************************/
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 */