* class.h, class.c: add mono_class_get_field_from_name ().
* *: Fix C comments and other ANSI C issues.
svn path=/trunk/mono/; revision=862
+Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
+
+ * class.h, class.c: add mono_class_get_field_from_name ().
+ * *: Fix C comments and other ANSI C issues.
+
Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
* endian.h, assembly.c: fix some endianness issues.
MONO_TYPE_MODIFIER = 0x40, /* Or with the following types */
MONO_TYPE_SENTINEL = 0x41, /* Sentinel for varargs method signature */
- MONO_TYPE_PINNED = 0x45, /* Local var that points to pinned object */
+ MONO_TYPE_PINNED = 0x45 /* Local var that points to pinned object */
} MonoTypeEnum;
#endif
/* fixme: check disable, because we still have external revereces to
* mscorlib and Dummy Objects
*/
- //g_assert (klass->valuetype);
+ /*g_assert (klass->valuetype);*/
size = mono_class_instance_size (klass) - sizeof (MonoObject);
return mono_class_get_field_idx (class, idx - 1);
}
+MonoClassField *
+mono_class_get_field_from_name (MonoClass *klass, const char *name)
+{
+ int i;
+ guint32 token;
+ MonoTableInfo *t = &klass->image->tables [MONO_TABLE_FIELD];
+
+ for (i = 0; i < klass->field.count; ++i) {
+ token = mono_metadata_decode_row_col (t, klass->field.first + i, MONO_FIELD_NAME);
+ if (strcmp (name, mono_metadata_string_heap (klass->image, token)) == 0)
+ return &klass->fields [i];
+ }
+ return NULL;
+}
+
/**
* mono_class_get:
* @image: the image where the class resides
MonoClassField *
mono_class_get_field (MonoClass *klass, guint32 field_token);
+MonoClassField *
+mono_class_get_field_from_name (MonoClass *klass, const char *name);
+
gint32
mono_array_element_size (MonoArrayClass *ac);
for (i = 0; i < top; i++){
if ((addr >= tables->st_virtual_address) &&
(addr < tables->st_virtual_address + tables->st_raw_data_size)){
- return iinfo->cli_sections [i] +
+ return (char*)iinfo->cli_sections [i] +
(addr - tables->st_virtual_address);
}
tables++;
int ref_count;
FILE *f;
char *name;
- char *assembly_name;
+ const char *assembly_name;
void *image_info;
char *raw_metadata;
g_module_symbol (gmodule, import, &mh->addr);
- g_assert (mh->addr);
+ if (!mh->addr)
+ g_error ("Failed to load function %s from %s", import, scope);
mh->flags |= METHOD_ATTRIBUTE_PINVOKE_IMPL;
}
guint32
mono_metadata_decode_blob_size (const char *xptr, const char **rptr)
{
- const unsigned char *ptr = xptr;
+ const unsigned char *ptr = (const unsigned char *)xptr;
guint32 size;
if ((*ptr & 0x80) == 0){
mh->max_stack = 8;
local_var_sig_tok = 0;
- //
- // The spec claims 3 bits, but the Beta2 is
- // incorrect
- //
+ /*
+ * The spec claims 3 bits, but the Beta2 is
+ * incorrect
+ */
mh->code_size = flags >> 2;
mh->code = ptr;
return mh;
MONO_TABLE_FILE,
MONO_TABLE_EXPORTEDTYPE,
MONO_TABLE_MANIFESTRESOURCE,
- MONO_TABLE_NESTEDCLASS,
+ MONO_TABLE_NESTEDCLASS
#define MONO_TABLE_LAST MONO_TABLE_NESTEDCLASS
} MonoMetaTableEnum;